Jan 1, 0001

Model of the distributed system

Важные свойства

  • Масштабируемость
  • Отказоустойчивость
  • Консистентность

Модель

01-lec-model.png

История

01-lec-history.png

Узлы

  • Каждый узел ~ автомат
  • Возможные отказы:
    • 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
    

01-lec-time.png

Свойства

  • Safety
  • Liveness

Синхронная модель

  • delay(m) $\leq \Delta$
  • таких не бывает :C

Асинхронная модель

  • Нет верхней границы на время доставки сообщения
    • это не очень удобно

Частично синхронная модель

  • Существует момент, с которого мы получим ответ достаточно быстро
  • Но как синхронизировать часы?

Итог

  • не делаем предположений для доказательства Safety;
  • когда мы доказываем Liveness, мы вынуждены пользоваться предположениями о времени.