У ScyllaDB / Cassandra более высокий коэффициент репликации, чем у общего числа узлов с CL = QUORUM - PullRequest
2 голосов
/ 12 октября 2019

Высоко ценим, если кто-то может помочь с приведенными ниже вопросами.

* RF = Коэффициент репликации

* CL = Уровень согласованности

У нас есть требование сильной Согласованности и выше Доступность . Итак, я тестировал RF и CL для 7 узлов кластера ScyllaDB, сохраняя RF = 7 (100% данных на каждом узле) и CL = QUORUM. Что будет с копированием / репликацией данных, если 2 узла выйдут из строя? Копирует ли он данные 2 нисходящих узлов (6-й и 7-й копии) на оставшиеся 5 узлов? или он просто откажется от этих копий? Каков будет эффект RF = 7, когда будет только 5 активных узлов?

Я не смог ничего найти в логах. У нас есть ссылка на документ / ссылку для этого случая? Или как я могу проверить и доказать это поведение? Пожалуйста, объясни?

Ответы [ 2 ]

7 голосов
/ 13 октября 2019

При RF = 7 данные всегда реплицируются на 7 узлов. Когда узел (или два) выходит из строя, остальные пять узлов уже имеют копию, и дополнительная потоковая передача не требуется.

Использование CL = QUORUM, даже если три узла не работают, не повредит вашей HA иликонсистенция. Когда отказавшие узлы возвращаются к жизни, они будут синхронизироваться либо автоматически, используя Hinted Handoff (для короткого сбоя), либо с Repair (для более длительного сбоя) [1]

Если вы замените мертвый узел [2], другие реплики будут передавать на него данные до тех пор, пока он не достигнет скорости с

[1] https://docs.scylladb.com/architecture/anti-entropy/ [2] https://docs.scylladb.com/operating-scylla/procedures/cluster-management/replace_dead_node/

0 голосов
/ 14 октября 2019

Данные всегда будут реплицироваться на все узлы, потому что вы установили RF = 7, если 2 узла отключены, тогда оставшиеся узлы будут хранить подсказки для этих узлов, когда узлы появятся, оставшиеся узлы будут реплицировать данные автоматически на основе периода подсказки. Если период подсказки(по умолчанию 3 часа) истек, затем вам нужно запустить ручное восстановление для синхронизации данных в кластере.

...