Cassandra est conçu pour gérer le Big Data. La principale caractéristique de Cassandra est de stocker des données sur plusieurs nœuds sans point de défaillance unique.
La raison de ce type d'architecture de Cassandra était que la panne matérielle pouvait survenir à tout moment. N'importe quel nœud peut être en panne. En cas de panne, les données stockées dans un autre nœud peuvent être utilisées. Par conséquent, Cassandra est conçu avec son architecture distribuée.
Cassandra stocke les données sur différents nœuds avec une architecture de mode distribuée peer to peer.
Tous les nœuds échangent des informations entre eux en utilisant le protocole Gossip . Gossip est un protocole de Cassandra par lequel les nœuds peuvent communiquer entre eux.
Dans ce didacticiel, vous apprendrez-
- Composants de Cassandra
- Réplication de données
- Opération d'écriture
- Lire l'opération
Composants de Cassandra
Il y a les composants suivants dans le Cassandra;
- Nœud
Node est l'endroit où les données sont stockées. C'est le composant de base de Cassandra.
- Centre de données
Un ensemble de nœuds est appelé centre de données. De nombreux nœuds sont classés en tant que centre de données.
- Grappe
Le cluster est la collection de nombreux centres de données.
- Journal de validation
Chaque opération d'écriture est écrite dans le journal de validation. Le journal de validation est utilisé pour la récupération après incident.
- Table de mémoire
Une fois les données écrites dans le journal de validation, les données sont écrites dans la table Mem. Les données sont écrites temporairement dans la table Mem.
- SSTable
Lorsque Mem-table atteint un certain seuil, les données sont vidées dans un fichier de disque SSTable.
Réplication de données
Comme un problème matériel peut survenir ou que la liaison peut être interrompue à tout moment pendant le traitement des données, une solution est requise pour fournir une sauvegarde lorsque le problème s'est produit. Les données sont donc répliquées pour ne garantir aucun point de défaillance unique.
Cassandra place des répliques de données sur différents nœuds en fonction de ces deux facteurs.
- L'endroit où placer la réplique suivante est déterminé par la stratégie de réplication .
- Alors que le nombre total de répliques placées sur différents nœuds est déterminé par le facteur de réplication .
Un facteur de réplication signifie qu'il n'y a qu'une seule copie des données tandis que trois facteurs de réplication signifie qu'il y a trois copies des données sur trois nœuds différents.
Pour garantir qu'il n'y a pas de point de défaillance unique, le facteur de réplication doit être de trois.
Il existe deux types de stratégies de réplication dans Cassandra.
Stratégie simple
SimpleStrategy est utilisé lorsque vous n'avez qu'un seul centre de données. SimpleStrategy place la première réplique sur le nœud sélectionné par le partitionneur. Après cela, les répliques restantes sont placées dans le sens des aiguilles d'une montre dans l'anneau Node.
Voici la représentation picturale de la SimpleStrategy.
RéseauTopologieStratégie
NetworkTopologyStrategy est utilisé lorsque vous avez plus de deux centres de données.
Dans NetworkTopologyStrategy, les réplicas sont définis séparément pour chaque centre de données. NetworkTopologyStrategy place les répliques dans le sens des aiguilles d'une montre dans l'anneau jusqu'à ce qu'elles atteignent le premier nœud d'un autre rack.
Cette stratégie tente de placer des réplicas sur différents racks dans le même centre de données. Cela est dû au fait qu'une panne ou un problème peut parfois se produire dans le rack. Ensuite, les répliques sur d'autres nœuds peuvent fournir des données.
Voici la représentation picturale de la stratégie de topologie du réseau
Opération d'écriture
Le coordinateur envoie une demande d'écriture aux répliques. Si tous les réplicas sont actifs, ils recevront une demande d'écriture quel que soit leur niveau de cohérence.
Le niveau de cohérence détermine le nombre de nœuds qui répondront avec l'accusé de réception de réussite.
Le nœud répondra avec un accusé de réception de réussite si les données sont écrites avec succès dans le journal de validation et dans memTable.
Par exemple, dans un seul centre de données avec un facteur de réplication égal à trois, trois réplicas recevront une demande d'écriture. Si le niveau de cohérence est un, un seul réplica répondra avec l'accusé de réception de réussite, et les deux autres resteront inactifs.
Supposons que si les deux réplicas restants perdent des données en raison de pannes de nœuds ou d'un autre problème, Cassandra rendra la ligne cohérente par le mécanisme de réparation intégré dans Cassandra.
Ici, il est expliqué, comment le processus d'écriture se produit dans Cassandra,
- Lorsque la demande d'écriture arrive au nœud, tout d'abord, il se connecte au journal de validation.
- Puis Cassandra écrit les données dans la table mem. Les données écrites dans la table mem à chaque demande d'écriture sont également écrites séparément dans le journal de validation. Mem-table est une donnée stockée temporairement dans la mémoire tandis que le journal de validation enregistre les enregistrements de transaction à des fins de sauvegarde.
- Lorsque la table mémoire est pleine, les données sont vidées dans le fichier de données SSTable.
Lire l'opération
Il existe trois types de demandes de lecture qu'un coordinateur envoie aux répliques.
- Demande directe
- Demande de résumé
- Lire la demande de réparation
Le coordinateur envoie une demande directe à l'une des répliques. Après cela, le coordinateur envoie la demande de résumé au nombre de répliques spécifié par le niveau de cohérence et vérifie si les données renvoyées sont des données mises à jour.
Après cela, le coordinateur envoie une demande de résumé à toutes les répliques restantes. Si un nœud donne une valeur obsolète, une demande de réparation de lecture en arrière-plan mettra à jour ces données. Ce processus est appelé mécanisme de réparation en lecture.
Résumé
Ce didacticiel explique l'architecture interne de Cassandra et comment Cassandra réplique, écrit et lit les données à différentes étapes. En outre, ici, il explique comment Cassandra maintient le niveau de cohérence tout au long du processus.