Разница между GetLastCheckpointRequest и GetAllMutationTokensRequest?
Какая разница в порядковом номере, возвращаемом над двумя? AFAIK оба возвращают последний порядковый номер, который, возможно, не был реплицирован или сохранен на диске.
Разница, о которой я знаю,
GetAllMutationTokensRequest возвращает значения только для одного узла. Поэтому вызов его один раз для каждого узла должен быть эквивалентен GetLastCheckpointRequest.
GetLastCheckpointRequest возвращает 1, если без изменений, GetAllMutationTokensRequest возвращает 0.
Мы используем getCurrentState, как показано в https://forums.couchbase.com/t/getallmutationtokensrequest-generates-incomplete-response/8166/2. Для кластеров, которые перешли на другой ресурс и несколько раз перебалансировались, похоже, что getCurrentState не возвращает никаких изменений после последнего вызова, даже если они есть. Ранее мы использовали GetAllMutationTokensRequest, и он возвращал правильный высокий порядковый номер. Мы используем core-io 1.2.8 .
1 ответ
После этого исправления https://github.com/couchbase/couchbase-jvm-core/commit/5953dc39d0c212109d951822497ea8d6bf3a4762 GetAllMutationTokensRequest
Правильно передаваемый для каждого узла, предыдущее поведение было связано с ошибкой.
GetLastCheckpointRequest
немного отличается, потому что он не возвращает текущий порядковый номер, а, скорее, seqno последней закрытой контрольной точки, которая может отличаться от значения, возвращаемого GetAllMutationTokensRequest