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