Изменения

Перейти к: навигация, поиск

CRDT

180 байт убрано, 22:21, 3 июня 2019
Репликация на основе состояния (CRDT)
Получили полурешётку, но разрослись данные: не только счётчик, но и все идентификаторы операций.
== Репликация на основе состояния (CRDT) ==
Получив обновление от клиента, реплика сперва обновляет локальное состояние, затем отправляет это состояние другой реплике. Та применяет функцию merge, чтобы объединить свое состояние с полученным и отправляет его еще одной реплике, и т. д.Теперь данные хранятся как $n$ независимых счётчиков: по одному на каждый процесс.
Достаточные условия согласованностиОперация:установить компоненты в такие-то значения.
1Объединение операций: покомпонентный максимум (коммутативно и идемпотентно). Множество возможных состояний образует полурешетку, т.е. частично упорядоченное множество с операцией наименьшей верхней грани, причем merge реализует эту операцию;
2. Обновления возрастаютТеперь у нас состояние не растёт со временем, а инкремент всё ещё можно делать: процесс увеличивает свой локальный счётчик и рассылает своё новое состояние всем.
== $\delta$-CRDT ==
292
правки

Навигация