Jan 1, 0001
Model of the distributed system
Важные свойства
- Масштабируемость
- Отказоустойчивость
- Консистентность
Модель
История
Узлы
- Каждый узел ~ автомат
- Возможные отказы:
- Crash
- Restart
- Byzantine
Провода
- Fair-loss link
- не гарантируем доставку
- Reliable [Perfect] link
- каждое сообщение будет доставлено ровно 1 раз
- полагаться на такую модель не стоит: берём в расчёт отказы
Время
- Взаимодействуем с часами
Clock: C(t) -> v Now() 1) t_1, t_2, t_3 --- ordering ! skew 2) t_2 - t_1 --- timeout (failure detection) ! driff
Свойства
- Safety
- Liveness
Синхронная модель
- delay(m) $\leq \Delta$
- таких не бывает :C
Асинхронная модель
- Нет верхней границы на время доставки сообщения
- это не очень удобно
Частично синхронная модель
- Существует момент, с которого мы получим ответ достаточно быстро
- Но как синхронизировать часы?
Итог
- не делаем предположений для доказательства Safety;
- когда мы доказываем Liveness, мы вынуждены пользоваться предположениями о времени.