Мне абсолютно нужно минимум 3 узла/серверы для кластера Cassandra или 2 будет достаточно?

StackOverflow https://stackoverflow.com/questions/2330562

Вопрос

Конечно, можно запустить один кластер узлов, но я бы хотел какой-то уровень неисправности.

В настоящее время я могу позволить себе арендовать два сервера (8 ГБ оперативной памяти, частная VLAN @1Gige), но не 3.

Насколько я понимаю, 3 узла - это минимум, необходимый для кластера Cassandra, потому что для разрешения конфликтов версий не существует никакого большинства, и для разрешения конфликтов об управлении версиями требуется большинство. Ой, подождите, я думаю о «векторных часах» и Риаке? Ак! Кассандра использует временные метки для разрешения конфликтов.

Для 2 узлов какова рекомендуемая стратегия чтения/записи? Должен ли я писать во всех (оба) узлах и читать из одного (n = 2; w = n/2+1; w = 2/2+1 = 2)? Кассандра будет использовать намек, как обычно, даже для 2 узлов, да?

Эти 2 сервера расположены в том же центре обработки данных FWIW.

Спасибо!

Это было полезно?

Решение

Если вам нужна доступность на rf = 2, Clustersize = 2, то вы не можете использовать все, или вы не сможете писать, когда узел снизится.

Вот почему люди рекомендуют 3 узла вместо 2, потому что тогда вы можете делать чтения кворума+и при этом иметь как сильную последовательность, так и доступность, если один узел снизится.

С всего лишь 2 узлов вы выбираете, хотите ли вы сильную последовательность (напишите со всеми) или доступность перед лицом сбоя одного узла (напишите с одним), но не оба. Конечно, если вы пишете с одним Кассандрой, намекнув на передачу и т. Д. По мере необходимости, чтобы сделать его в конечном итоге последовательным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top