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

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

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

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

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

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

Спасибо!

1 ответ

Решение

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

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

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

Другие вопросы по тегам