Cassandra à 4 noeuds – sauter la redondance?

Après beaucoup de plaidoyer et de création de cas, mon groupe a eu le budget pour acheter 4 noeuds et commencer un cluster de cassandra. Chaque machine dispose de lecteurs 3x1Tb, alors je me request si il est raisonnable de sauter la redondance 1 voie et de réfléchir le (s) lecteur (s) de données à la place.

Les données seront sauvegardées de sorte que ce ne soit pas un problème.

On dirait que la probabilité de perdre une machine dans un si petit groupe est faible.

Est-ce raisonnable ou est-ce que je manque un problème / facteur plus important?

Cela dépend vraiment de ce que vous utilisez Cassandra. L'utilisez-vous pour la disponibilité de vos données, le partage de vos données ou les deux? À partir de cela, vous l'utilisez plus pour le partitionnement de vos données afin que vous puissiez réduire vos données.

Une partie de la raison pour laquelle vous souhaitez répliquer vos données dans cassandra est pour la disponibilité. Si vous disposez d'un cluster à 4 nœuds avec un facteur de réplication de 3 par exemple, vous pouvez survivre à la perte d'un noeud sans avoir à effectuer de maintenance (avec un niveau de cohérence de quorum, 2 noeuds avec un niveau de cohérence "unique"). D'autre part, chacun de vos noeuds détient 75% des données sur le cluster, ce qui est probablement quelque chose que vous espérez éviter. C'est pourquoi j'essaierais de plaider pour un autre server, mais peut-être que vous n'en auriez pas besoin tout de suite et vous pouvez append d'autres servers à mesure que vos besoins de données augmentent.

Alors que vous mentionnez que la perte d'une machine est peu probable, l'exécution avec un facteur de réplication de 1 request de problèmes à mon avis. Vous ne pouvez jamais rencontrer des problèmes, mais quand vous le faites, ce ne sera pas amusant. Si vous utilisiez un server géant pour traiter votre database, il semblerait less probable qu'il ne soit pas possible d'accéder à 1 server sur 4?

Il y a aussi d'autres choses qui peuvent provoquer l'échec d'un noeud de cassandra ou de ne plus répondre (défauts de operating system, collecte de déchets, problèmes de réseau, etc.)

Lorsque vous commencez à utiliser une database dissortingbuée, la tolérance aux pannes devrait être plus préoccupante que lors de l'utilisation d'une configuration de database unique traditionnelle et le casandra se concentre et excelle dans ce domaine.

J'ai eu des expériences passées où il est difficile de justifier les achats matériels et la configuration de l'environnement avec la gestion. La meilleure façon de comprendre les implications est de décrire un scénario de défaillance et s'il est acceptable ou non, par exemple:

Si un server a une panne matérielle, datatables sont corrompues, ou cassandra se bloque, combien de time pouvons-nous tolérer les time d'arrêt?

Si la réponse est '0 minutes', vous voudrez utiliser un facteur de réplication d'au less 3. Il y a plus d'avantages à cela. Avec un facteur de réplication de 3, cela signifie que plus de nœuds peuvent traiter une request de lecture individuelle améliorant potentiellement les performances de lecture.

En outre, la mise en miroir / RAID 1 est considérée comme un peu anti-model avec Cassandra pour vos données (bien que ce ne soit pas une mauvaise idée pour les commitlogs). Il serait préférable d'utiliser RAID 0 ou plusieurs directorys de données, définir votre facteur de réplication à 3 et laisser Cassandra prendre soin de la redondance pour vous.