À propos du facteur de réplication Cassandra et du niveau de cohérence

Edge for Private Cloud v. 4.17.01

À propos du facteur de réplication Cassandra

Cassandra stocke les instances répliquées des données sur plusieurs nœuds pour assurer la fiabilité et la tolérance aux pannes. La stratégie de réplication de chaque espace de clés Edge détermine les nœuds où les instances répliquées sont placées.

Le nombre total d'instances répliquées pour un espace de clés sur un cluster Cassandra est appelé facteur de réplication de l'espace de clés. Un facteur de réplication de un signifie qu'il n'existe qu'une seule copie de chaque ligne dans le cluster Cassandra. Un facteur de réplication de deux signifie qu'il existe deux copies de chaque ligne, chaque copie se trouvant sur un nœud différent. Toutes les instances répliquées sont d'égale importance. Il n'y a pas d'instance répliquée principale ou maître.

Dans un système de production comportant au moins trois nœuds Cassandra dans chaque centre de données, le facteur de réplication par défaut d'un espace de clés Edge est de trois. En règle générale, le facteur de réplication ne doit pas dépasser le nombre de nœuds Cassandra dans le cluster.

Suivez la procédure ci-dessous pour afficher le schéma Cassandra, qui indique le facteur de réplication pour chaque espace de clés Edge :

  1. Connectez-vous à un nœud Cassandra.
  2. Exécutez la commande suivante :
    > /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    Où $(hostname -i) correspond à l'adresse IP du nœud Cassandra. Vous pouvez également remplacer $(hostname -i) par l'adresse IP du nœud.

Pour chaque espace de clés, vous verrez un résultat au format suivant :

create keyspace kms
  with placement_strategy = 'NetworkTopologyStrategy'
  and strategy_options = {dc-1 : 3}
  and durable_writes = true;

Vous pouvez constater que pour le centre de données 1, dc-1, le facteur de réplication par défaut de l'espace de clés kms est de trois pour une installation avec trois nœuds Cassandra.

Si vous ajoutez des nœuds Cassandra au cluster, le facteur de réplication par défaut n'est pas affecté.

Par exemple, si vous augmentez le nombre de nœuds Cassandra à six, mais que vous laissez le facteur de réplication à trois, vous ne garantissez pas que tous les nœuds Cassandra disposent d'une copie de toutes les données. Si un nœud tombe en panne, un facteur de réplication plus élevé signifie qu'il est plus probable que les données du nœud existent sur l'un des nœuds restants. L'inconvénient d'un facteur de réplication plus élevé est une latence accrue lors des écritures de données.

À propos du niveau de cohérence Cassandra

Le niveau de cohérence Cassandra est défini comme le nombre minimal de nœuds Cassandra qui doivent accuser réception d'une opération de lecture ou d'écriture avant que l'opération puisse être considérée comme réussie. Différents niveaux de cohérence peuvent être attribués à différents espaces de clés Edge.

Lors de la connexion à Cassandra pour les opérations de lecture et d'écriture, les nœuds du processeur de messages et du serveur de gestion utilisent généralement la valeur Cassandra de LOCAL_QUORUM pour spécifier le niveau de cohérence d'un espace de clés. Cependant, certains espaces de clés sont définis pour utiliser un niveau de cohérence de un.

Le calcul de la valeur de LOCAL_QUORUM pour un centre de données est le suivant :

LOCAL_QUORUM = (replication_factor/2) + 1 

Comme décrit ci-dessus, le facteur de réplication par défaut pour un environnement de production Edge avec trois nœuds Cassandra est de trois. Par conséquent, la valeur par défaut de LOCAL_QUORUM = (3/2) + 1 = 2 (la valeur est arrondie à l'entier inférieur).

Avec LOCAL_QUORUM = 2, au moins deux des trois nœuds Cassandra du centre de données doivent répondre à une opération de lecture/écriture pour que l'opération aboutisse. Pour un cluster Cassandra à trois nœuds, le cluster peut donc tolérer un nœud indisponible par centre de données.

En spécifiant le niveau de cohérence LOCAL_QUORUM, Edge évite la latence requise par la validation des opérations sur plusieurs centres de données. Si un espace de clés utilisait la valeur QUORUM de Cassandra comme niveau de cohérence, les opérations de lecture/écriture devraient être validées dans tous les centres de données.

Pour afficher le niveau de cohérence utilisé par les nœuds du processeur de messages ou du serveur de gestion Edge :

  1. Connectez-vous à un nœud de processeur de messages.
  2. Accédez au répertoire /opt/apigee/edge-message-processor/conf :
    > cd /opt/apigee/edge-message-processor/conf
  3. Pour la cohérence d'écriture :
    > grep -ri "write.consistencylevel" *
  4. Pour la cohérence de lecture :
    > grep -ri "read.consistencylevel" *
  5. Connectez-vous au nœud du serveur de gestion.
  6. Accédez au répertoire /opt/apigee/edge-management-server/conf :
    > cd /opt/apigee/edge-management-server/conf
  7. Répétez les étapes 3 et 4.

Si vous ajoutez des nœuds Cassandra au cluster, le niveau de cohérence n'est pas affecté.