Согласованность, репликация и CAP
Не переживайте, если эти слова звучат пугающе — мы объясним каждое по ходу дела. В этом уроке мы учимся говорить на собеседовании о нескольких базовых идеях: о репликации (хранение копий одних и тех же данных в нескольких местах, чтобы при отказе одной машины оставалась резервная), о кворуме (число
System Design (планирование того, как построить крупное ПО, обслуживающее множество людей) похож на планирование города: дороги, склады, светофоры и ремонтные бригады, чтобы город продолжал гладко работать даже в час пик, когда все выходят одновременно.
- Согласованность и репликация
- Ключевая идея этого урока: как мы храним копии данных (репликация), сколько копий должны согласиться (кворум), почему копии иногда обновляются лишь спустя мгновение (итоговая согласованность), какой компромисс мы выбираем во время сетевой проблемы (CAP) и как мы автоматически переключаемся на резерв при сбое (failover).
- Компромисс
- Компромисс — осознанный выбор, при котором вы выигрываете в одном и платите за это другим, как выбор фастфуда вместо домашней еды: вы экономите время, но теряете в качестве. На собеседовании вы объясняете, что выиграли и чего это стоило.
- Эксплуатационная метрика
- Эксплуатационная метрика — число, которое показывает, действительно ли решение работает, когда система запущена и обслуживает реальных пользователей (это называется продакшен). Например: задержка (сколько времени занимает получение ответа), доля ошибок (доля запросов, которые завершаются неудачей), отставание очереди (сколько задач стоит в очереди), доля попаданий в кэш (как часто мы нашли ответ в быстрой памяти) и другие.