Уровни согласованности в Кассандре

Опубликовано: 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 реплик. Итак, в случае согласованности записи, если какой-либо узел не работает, запись не выполняется. В случае уровня согласованности чтения для ВСЕХ это означает, что все реплики ответили. Если реплика не ответит, произойдет сбой.