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

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

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

Насколько я понимаю, 3 узла — это минимум, необходимый для кластера Cassandra, потому что между 2 узлами не может быть большинства, и большинство требуется для разрешения конфликтов версий. О, подождите, я думаю о "векторных часах" и Riak? ак! Cassandra использует метки времени для разрешения конфликтов.

Какова рекомендуемая стратегия чтения/записи для 2 узлов? Должен ли я вообще писать на ВСЕ (оба) узлы и читать с ОДНОГО (N = 2; W = N/2 + 1; W = 2/2 + 1 = 2)? Cassandra будет использовать хинтованную передачу обслуживания, как обычно, даже для двух узлов, да?

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

Спасибо!


person z8000    schedule 24.02.2010    source источник


Ответы (1)


Если вам нужна доступность в системе RF=2, clustersize=2, то вы не можете использовать ALL, иначе вы не сможете писать, когда узел выйдет из строя.

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

Имея всего 2 узла, вы можете выбрать, хотите ли вы строгую согласованность (запись со ВСЕМИ) или доступность в случае сбоя одного узла (запись с ОДНИМ), но не то и другое одновременно. Конечно, если вы пишете с помощью ОДНОЙ кассандры, она будет делать намек на передачу и т. Д. По мере необходимости, чтобы сделать ее в конечном итоге согласованной.

person jbellis    schedule 25.02.2010
comment
Это все еще правильно? Похоже, что значение уровня согласованности ONE в вашем ответе больше похоже на уровень согласованности ANY в текущих версиях cassandra. Я предполагаю, что в какой-то момент ЛЮБОЙ разветвился из ОДНОГО? - person Jason Punyon; 01.03.2014
comment
Когда количество узлов равно количеству имеющихся у вас реплик, значения ONE и ANY эквивалентны. - person jbellis; 20.03.2014