SYSTEM ATLASЗагрузка материала

Итоговая согласованность

Eventual Consistency

Если новые изменения прекратятся, реплики со временем сойдутся к одному состоянию.

Простыми словами

Копии данных в разных узлах могут некоторое время отличаться. Обновления распространяются с задержкой, но после прекращения новых изменений и разрешения конфликтов реплики должны сойтись. Так работают, например, кэши и DNS: один пользователь уже видит новое значение, другой ещё старое. Это важно, потому что “когда-нибудь согласуется” не гарантирует конкретный срок и не защищает бизнес-правила автоматически.

Формальное определение

Модель итоговой согласованности гарантирует: если новых обновлений больше нет, все доступные реплики в конечном счёте возвращают одно и то же значение. Дополнительные свойства - порядок, монотонность чтений и разрешение конфликтов - задаются отдельно.

Механизм действия

Узел принимает локальное изменение, затем передаёт его другим репликам через асинхронную репликацию. Версии сравниваются и объединяются по выбранному правилу. При доставке всех обновлений и прекращении записи различия исчезают.

Пример в работе

Нерабочий подход

Показывать пользователю расхождение без объяснения и стратегии разрешения конфликтов.

Системный подход

Использовать там, где временная несогласованность дешевле задержки или недоступности.

Ограничения

Сходимость требует прекращения обновлений или согласованного механизма разрешения конфликтов; термин сам по себе не задаёт срок, порядок чтений или сохранность бизнес-инвариантов.

Источник

Werner Vogels, “Eventually Consistent”, 2008.

Первоисточник