Конечно, можно выполнить единственный кластер узла, но я хотел бы некоторый уровень отказоустойчивости.
В настоящее время я могу позволить себе арендовать два сервера (8 ГБ RAM, частного VLAN @1GigE), но не 3.
Мое понимание - то, что 3 узла являются минимумом, необходимым для кластера Cassandra, потому что нет никакого возможного большинства между 2 узлами, и большинство требуется для разрешения конфликтов управления версиями. О, ожидайте, я думаю "о векторных часах" и Riak? Ack! Cassandra использует метки времени для разрешения конфликтов.
Для 2 узлов, какова рекомендуемая стратегия чтения-записи? Если я обычно пишу в ВЕСЬ (оба) узлы и читаю из ОДНОГО (N=2; W=N/2+1; W=2/2+1=2)? Cassandra будет использовать подсказавшую передачу, как обычно, даже для 2 узлов, да?
Эти 2 сервера расположены в том же дата-центре FWIW.
Спасибо!
Если вам нужна доступность в системе RF = 2, clusterize = 2, вы не можете использовать ВСЕ или не сможете писать, когда узел выходит из строя.
Вот почему люди рекомендуют 3 узла вместо 2, потому что тогда вы можете выполнять чтение + запись кворума и при этом сохранять высокую согласованность и доступность, если один узел выходит из строя.
Имея всего 2 узла, вы можете выбрать, хотите ли вы строгую согласованность (запись со ВСЕМИ) или доступность в случае отказа одного узла (запись с ОДНИМ), но не то и другое одновременно. Конечно, если вы пишете с ОДНОЙ, cassandra будет выполнять подсказку и т. Д. По мере необходимости, чтобы сделать это в конечном итоге согласованным.