2010-02-24 27 views
10

Sûrement, on peut exécuter un seul cluster de nœuds, mais je voudrais un certain niveau de tolérance aux pannes.Ai-je absolument besoin d'un minimum de 3 nœuds/serveurs pour un cluster Cassandra ou 2 suffira-t-il?

À l'heure actuelle, je peux me permettre de louer deux serveurs (8 Go de RAM, VLAN privé @ 1GigE) mais pas 3.

Ma compréhension est que 3 nœuds est le minimum requis pour un cluster Cassandra parce qu'il n'y a pas de majorité possible entre 2 nœuds, et une majorité est nécessaire pour résoudre les conflits de versionnage. Oh, attends, est-ce que je pense aux "horloges vectorielles" et à Riak? Ack! Cassandra utilise des horodatages pour la résolution des conflits.

Pour 2 nœuds, quelle est la stratégie de lecture/écriture recommandée? Dois-je écrire généralement à tous (les deux) nœuds et lire à partir de ONE (N = 2; W = N/2 + 1; W = 2/2 + 1 = 2)? Cassandra utilisera le hand-by-off comme d'habitude même pour 2 nœuds, oui?

Ces 2 serveurs sont situés dans le même centre de données FWIW.

Merci!

Répondre

18

Si vous avez besoin de disponibilité sur un système RF = 2, clustersize = 2, vous ne pouvez pas utiliser ALL ou vous ne pourrez pas écrire quand un nœud tombe en panne. C'est pourquoi les gens recommandent 3 nœuds au lieu de 2, car alors vous pouvez faire quorum lectures + écritures et toujours avoir une cohérence et une disponibilité fortes si un seul nœud tombe en panne.

Avec seulement 2 nœuds, vous pouvez choisir si vous voulez une forte cohérence (écrire avec ALL) ou la disponibilité face à une panne de nœud unique (écrire avec ONE) mais pas les deux. Bien sûr, si vous écrivez avec un cassandra, vous ferez un "handoff", comme cela est nécessaire pour le rendre cohérent.

+0

Est-ce encore correct? Il semble que la signification de «niveau de cohérence ONE» dans votre réponse est plus proche du niveau de cohérence ANY sur les versions actuelles de cassandra. Je suppose que tout a été fourchu à partir de ONE à un moment donné? –

+0

Lorsque votre nombre de nœuds est équivalent au nombre de répliques que vous avez, ONE et ANY sont équivalents. – jbellis