Как Cassandra Read Repair знает, какие данные самые последние? - PullRequest
0 голосов
/ 27 октября 2018

Скажем, координатор получает запрос на чтение, а кворум на чтение равен 2. Одна реплика вернула 0, а другая 1. Итак, как координатор узнает, какое значение является последним, чтобы он мог записать его обратно. Я не знаю, как это делает Кассандра. Я не думаю, что он использует системные часы, как именно это может кто-нибудь объяснить, не может найти ни в одной документации.

Спасибо.

1 Ответ

0 голосов
/ 27 октября 2018

Каждая запись создает мутацию, которая имеет метку времени. Временная метка устанавливается клиентом по умолчанию (чтобы они были идемпотентными), но может быть создана на координаторе, если нет. Это время записи основано на часах (микросекунды монотонны, поэтому не конфликтуют локально) и используется для определения победителя конфликта (последняя запись выигрывает).

...