Ho assolutamente bisogno di un minimo di 3 nodi / server per un cluster Cassandra o la volontà 2 bastano?
-
22-09-2019 - |
Domanda
Sicuramente si può eseguire un cluster a singolo nodo, ma mi piacerebbe un certo livello di tolleranza d'errore.
Al momento posso permettersi di affittare due server (8 GB di RAM, VLAN privata @ reti da 1 GigE), ma non 3.
La mia comprensione è che 3 nodi è il minimo necessario per un cluster Cassandra perché non c'è possibilità di maggioranza tra i 2 nodi, ed è necessaria una maggioranza per risolvere i conflitti di versioning. Oh aspetta, sto pensando di "orologi vettore" e Riak? Ack! Cassandra utilizza timestamp per la risoluzione dei conflitti.
Per 2 nodi, qual è la strategia di lettura / scrittura raccomandato? Devo generalmente scrivere ALL (entrambi) nodi e leggere ONE (N = 2; W = N / 2 + 1; W = 2/2 + 1 = 2)? Cassandra utilizzerà accennato-handoff come al solito, anche per 2 nodi, sì?
Questi 2 server si trovano nello stesso centro dati FWIW.
Grazie!
Soluzione
Se avete bisogno di disponibilità su RF = 2, dei cluster = Sistema 2, allora non si può utilizzare in tutto o non sarà in grado di scrivere quando un nodo va giù.
Ecco perché la gente consiglia 3 nodi invece di 2, perché allora si può fare il quorum legge + scrive e hanno ancora sia forte coerenza e di disponibilità, se un singolo nodo va giù.
Con solo 2 nodi si arriva a scegliere se si desidera una forte consistenza (scrivere con ALL) o la disponibilità a fronte di un singolo guasto nodo (scrivere con ONE), ma non entrambi. Naturalmente se si scrive con ONE cassandra farà accennato handoff ecc come necessario per renderlo finalmente coerente.