101
правка
Изменения
Нет описания правки
Eventual consistency нужен для того, чтобы была гарантия, что мы узнаем обо всех изменениях после применения протокола объединения при восстановлении оборванной связи.<br>
Последние два свойства нужны для того, чтоб при восстановлении связи система постепенно (не мгновенно) приходила в согласованное состояние.<br>
Этот подход возможно реализовать в реальном мире.<br>
=== Разрешение несогласованности ===
Если разрешать при чтении, то замедляется чтение.<br>
Можем узнавать, не появилось ли на каком-то удаленном узле изменение наших данных, о котором он еще не успел сообщить, что небыстро.<br>
При записи - замедляется запись.<br>
Можем запрещать изменять удаленные данные в случае разрыва соединения, но локальные изменять свободно.<br>
Может быть отдельный асинхронный процесс, приводящий систему к согласованию, но это тоже ресурсы.<br>
Будет честно запрашивать изменения, объединять их и доносить новое состояние до всех узлов БД.<br>
Итого, у нас будет несколько изменений, которые нужно как-то объединить.<br>
Можно, например, с помощью меток времени или векторных часов.<br>
=== Оптимизация вопросов ===