Как CouchDB вычисляет идентификатор последовательности (seq) - PullRequest
0 голосов
/ 28 декабря 2018

Я ищу псевдокод или фактический код в исходном хранилище (https://github.com/apache/couchdb), определяющий, как CouchDB вычисляет значение seq.

Просмотр технического обзора в документах: http://docs.couchdb.org/en/2.2.0/intro/overview.html он говорит:

Каждое обновление экземпляра базы данных генерирует новый порядковый номер.

Но это не касается того, как. Я думаю, что этоможет зависеть от реализации, если посмотреть документацию по протоколу репликации:

Идентификатор последовательности: Идентификатор, предоставленный фидом изменений. Он ДОЛЖЕН быть инкрементным, но НЕ МОЖЕТ всегда бытьцелое число.

 1-g1AAAAIreJyVkEsKwjAURZ-toI5cgq5A0sQ0OrI70XyppcaRY92J7kR3ojupaSPUUgotgRd4yTlwbw4A0zRUMLdnpaMkwmyF3Ily9xBwEIuiKLI05KOTW0wkV4rruP29UyGWbordzwKVxWBNOGMKZhertDlarbr5pOT3DV4gudUC9-MPJX9tpEAYx4TQASns2E24ucuJ7rXJSL1BbEgf3vTwpmedCZkYa7Pulck7Xt7x_usFU2aIHOD4eEfVTVA5KMGUkqhNZV-8_o5i

Этот вопрос несколько связан с тем, что он спрашивает, как он вычисляет другой компонент документа, rev:

Как CouchDB вычисляетНомер редакции

1 Ответ

0 голосов
/ 02 января 2019

Вы можете найти здесь некоторую информацию о внутренних элементах последовательности изменений

Порядковый номер отражает состояние кластера для последовательности обновления документа, эта информация кодируется в порядковый номер.

Числовая часть порядкового номера представляет собой сумму последовательностей обновления документа в каждом из узлов кластера.

Вторая часть порядкового номера представляет собой строку в кодировке base64 с информацией о последовательности обновления в каждом из узлов кластера.

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