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

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

в настоящее время я могу позволить себе арендовать два сервера (8GB RAM, private VLAN @1GigE), но не 3.

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

для 2 узлов, какова рекомендуемая стратегия чтения / записи? Должен ли я вообще писать во все (оба) узла и читать из одного (N=2; W=N/2+1; W=2/2+1=2)? Кассандра будет использовать hinted-handoff как обычно даже для 2 узлов, да?

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

спасибо!

1 ответов


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

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

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