Как реализовать согласованные префиксные гарантии в распределенных системах? - PullRequest
0 голосов
/ 03 февраля 2019

Мне было интересно, как вы могли бы гарантировать, что клиент, читающий из распределенной системы, получает согласованные префиксы.

Что такое последовательные префиксы?Пример взят из здесь .

Согласованный префикс - возвращаемые обновления являются некоторым префиксом всех обновлений без пробелов. В случае, если заголовок не имеет смысла, «согласованный префикс» означает, что некоторый префикс всех записей (при условии, что записи имеют глобальный порядок) применяются таким образом, чтобы префикс был согласованным («до даты» вплоть до последней записи в префиксе без пробелов).

Например, если записи являются A, B, C, D, E, F, вы сможете прочитать несколько последовательных наборов этих записей, начиная с A. Обратите внимание, что пустой набор также тривиально является последовательным префиксом.

Почему это полезно?Следуя аналогии с бейсболом, приведенной выше, если вы записываете записи партитуры A: 1, B: 2, A: 3, B: 6, A: 5, B: 7 и у вас нет гарантии постоянного префикса, вы можетечитать базу данных, к которой применены только третья и последняя записи, давая вам A: 3 и B: 7, когда в действительности такой комбинации баллов никогда не было.

Единственное, что я могу сказать о том, как обеспечитьэто могло бы как-то гарантировать, что обновления выполняются в глобальном порядке для всех подписчиков (хотя это само по себе является проблемой).Возможно, этого можно достичь с помощью векторов версий, которые отслеживают, какой подписчик обновил точку данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...