Смысл возможной последовательности в Кассандре? - PullRequest
10 голосов
/ 03 января 2011

Что означает конечная согласованность в Cassandra, когда узлы в одном кластере не содержат копии одних и тех же данных, но данные распределяются между узлами.Теперь, поскольку один кусок данных записывается в одном месте (узле).Почему Кассандра не вернула недавнее значение из этого единственного места записи?Как возникает несколько копий в этой ситуации?

Ответы [ 5 ]

2 голосов
/ 04 марта 2017

Консистенция Кассандры настраивается.Что можно настроить?
* Количество узлов, необходимых для согласования данных для записи .. назовите это R * Количество узлов, необходимых для согласования данных для записи .. назовите это W
В случае 3 узлов, если мы выбрали 2R и 2W .. тогда во время чтения, если 2 узла согласовывают значение, это истинное значение.Третий может иметь или не иметь одно и то же значение.
В случае записи, если выбрано 2W, то если данные записываются в 2 узла, это считается достаточным.Эта модель согласована.
Если R + w <= N, где N - количество узлов, это в конечном итоге будет согласовано. <br>Кассандра поддерживает временную метку для каждого столбца и каждого поля столбца, чтобы в конечном итоге стать согласованной.В фоновом режиме есть механизм для достижения согласованного состояния.
Но, как я уже сказал, если R + W> N, то оно непротиворечивое.Вот почему последовательность считается настраиваемой в Кассандре.

2 голосов
/ 04 января 2011

Даже при коэффициенте репликации = 1 согласованность не обязательно является немедленной, поскольку записи буферизуются на узле, на который вы их отправляете, и, следовательно, не обязательно сразу отправляются на узел, ответственный за этот ключ.

Но это зависит от того, какой уровень согласованности вы выберете.

В основном сценарий использования Cassandra с коэффициентом репликации> 1, где согласованность становится большей проблемой.RF = 3, кажется, является общим параметром (поскольку он позволяет чтение / запись Quorum с одним недоступным узлом)

1 голос
/ 04 марта 2011

Вот хорошее объяснение по поводу непротиворечивого: http://www.allthingsdistributed.com/2008/12/eventually_consistent.html

1 голос
/ 03 января 2011

Клиент сам должен выбрать соответствующий уровень согласованности (ноль, любой, один, корум или все).(Уровень согласованности управляет поведением чтения и записи на основе вашего фактора репликации.) В кластере с одним узлом уровни согласованности any, one, quorom и все эквивалентны.

0 голосов
/ 30 декабря 2016

Cassandra имеет тенденцию ставить под угрозу задержки и согласованность для доступности.Это «в конечном итоге непротиворечивая» модель согласованности базы данных NoSQL, которая используется с распределенными настройками.Вместо того чтобы поддерживать строгую согласованность, которая может реально замедлить процесс в масштабе, возможная согласованность обеспечивает высокую доступность - просто за счет того, что каждый экземпляр ваших данных не синхронизируется сразу на всех серверах.

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