- **Задание 1. Интернет‑банк** **В интернет‑банке** пользователь переводит 1000 ₽ с карты А на карту Б. Во время операции связь на секунду пропадает, запрос дублируется, и на сервер приходят два очень похожих запроса перевода подряд. **Нужно:** - указать, какие свойства ACID здесь особенно важны и почему; АТОМАРНОСТЬ, ДЮРАБИЛИТИ (ОТСУТСТВУЕТ НАДЕЖНОСТЬ У ДАННОЙ ТРАНЗАКЦИИ), СОГЛАСОВАННОСТЬ - НЕЛЬЗЯ ПРОВЕСТИ ОДНУ ОПЕРАЦИЮ И ЗАСЧИТАТЬ ЕЕ ДВАЖДЫ. - описать, какие проблемы могут возникнуть, если этих свойств не будет (например, нет атомарности или изолированности). ЕСЛИ ЭТИХ СВОЙСТВ НЕ БУДЕТ, ТО ПРОИЗОЙДУТ ОШИБКИ, ДВА ОДИНАКОВЫХ ЗАПРОСА ИЛИ НЕИСПОЛНЕНИЕ ЗАПРОСА ВООБЩЕ. - **Задание 2. Лента новостей и лайки** **В социальной сети:** - пользователь ставит лайк под постом; - у его друга этот лайк появляется в ленте только через 5–10 секунд; - иногда счётчик лайков на разных устройствах на пару секунд показывает разные значения. **Нужно:** - решить, ближе ли эта система по поведению к ACID или к BASE и почему ЭТА СИСТЕМА БЛИЖЕ К БЭЙС. У ДАННОЙ СИСТЕМЫ НЕТ СТРОГИХ ОГРАНИЧЕНИЙ. - **Задание 3. Заказы в интернет‑магазине** **В интернет‑магазине:** - при оформлении заказа запись о заказе и списание товара со склада делаются в **одной транзакции**; - статистика «топ‑товары недели» обновляется раз в несколько минут на отдельном сервисе, и пару минут может показывать старые данные. **Нужно:** - указать, какая часть системы ведёт себя по принципам ACID, а какая — по принципам BASE; ЗАПИСЬ О ЗАКАЗЕ И СПИСАНИЕ ТОВАРА - ЭТО ACID. СТАТИСТИКА - BASE. - объяснить, почему такое разделение логично: где нам важна немедленная строгая точность, а где допускается небольшое отставание и eventual consistency. В ПЕРВОМ СЛУЧАЕ НУЖЕН ACID потому что требуются свойства ACID, а во втором эти свойства необзяательны, нет ничего страшного в том, что данная БД обновится чуть позже.