Уровни согласованности в Кассандре
Опубликовано: 16 Августа, 2021
В этой статье мы собираемся обсудить уровни согласованности в Cassandra, что очень полезно для обеспечения высокой доступности и высокого уровня механизма в Cassandra. давайте обсудим по порядку.
Сначала мы собираемся определить сценарий пространства ключей, в котором мы покажем, как у нас есть другой центр обработки данных, и каждый центр обработки данных содержит 3 реплики. Давайте посмотрим.
СОЗДАТЬ KEYSPACE cluster_consistency с репликацией = {'class': 'NetworkTopologyStrategy', «DC1»: 3, «DC2»: 3, «DC3»: 3} И DURABLE_WRITES = false;
В приведенном выше запросе CQL у нас есть три разных центра обработки данных, такие как DC1, DC2 и DC3. У каждого центра обработки данных есть 3 реплики, что просто означает, что коэффициент репликации равен трем (RF = 3).
Давайте рассмотрим сценарий, в котором существует три фактора репликации в каждых трех центрах обработки данных.
- LOCAL_ONE:
На этом уровне согласованности нам нужен 1 узел, чтобы ответить от локального постоянного тока, чтобы добиться успеха. - LOCAL_QUORUM:
На этом уровне согласованности нам нужно 2 узла для ответа от локального постоянного тока, чтобы добиться успеха. - EACH_QUORUM:
На этом уровне согласованности нам нужно 2 узла в каждом постоянном токе, чтобы добиться успеха. Итак, из каждого центра обработки данных, если 2 узла ответят, то в этом случае всего 6 узлов. - LOCAL_SERIAL:
Этот уровень согласованности похож на LOCAL_QUORUM. На этом уровне согласованности нам нужны 2 узла из ЛОКАЛЬНОГО DC для успеха. Но уровень согласованности In LOCAL _SERIAL имеет много дополнительного трафика (по крайней мере, 4 раза туда и обратно) для обеспечения порядка и согласованности в Cassandra. - ОДИН:
На этом уровне согласованности уровень согласованности записи для ОДНОГО должен быть записан в журнал фиксации и таблицу памяти по крайней мере одного узла реплики. В этом случае для успеха нам понадобится 1 узел из ЛЮБОГО DC. - ДВА:
На этом уровне согласованности уровень согласованности записи для TWO должен быть записан в журнал фиксации и таблицу памяти как минимум двух узлов реплик. В этом случае нам нужно 2 узла для ответа от ЛЮБОГО DC, чтобы добиться успеха. - ТРИ :
На этом уровне согласованности уровень согласованности записи для ТРИ должен быть записан в журнал фиксации и таблицу памяти как минимум трех узлов реплик. В этом случае нам нужно 3 узла для ответа от ЛЮБОГО контроллера домена, чтобы добиться успеха. - КВОРУМ:
На этом уровне согласованности уровень согласованности записи должен быть записан в журнал фиксации и таблицу памяти в кворуме узлов реплик во всех центрах обработки данных. На этом уровне согласованности (n / 2 +1) узлов Требуется (9/2 +1) 5 узлов на ответ от ЛЮБОГО DC для успеха. - СЕРИЙНЫЙ:
Это похоже на КВОРУМНУЮ согласованность. В этой последовательности нам нужно 5 узлов из ЛЮБОГО центра обработки данных, чтобы добиться успеха. Но согласованность на последовательном уровне также имеет много дополнительного трафика (по крайней мере, 4 раза туда и обратно) для обеспечения порядка и согласованности. - ВСЕ:
На этом уровне согласованности для успеха нам нужны все 9 реплик. Итак, в случае согласованности записи, если какой-либо узел не работает, запись не выполняется. В случае уровня согласованности чтения для ВСЕХ это означает, что все реплики ответили. Если реплика не ответит, произойдет сбой.