Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Niveaux de cohérence en lecture et écriture pris en charge par Apache Cassandra et coûts associés
Les rubriques de cette section décrivent les niveaux de cohérence d'Apache Cassandra pris en charge pour les opérations de lecture et d'écriture dans Amazon Keyspaces (pour Apache Cassandra).
Rubriques
Niveaux de cohérence en écriture
Amazon Keyspaces reproduit trois fois toutes les opérations d'écriture sur plusieurs zones de disponibilité pour garantir durabilité et haute disponibilité. Les écritures sont stockées durablement avant d'être reconnues à l'aide du niveau de cohérence LOCAL_QUORUM
. Pour chaque écriture de 1 Ko, vous êtes facturé 1 unité de capacité d'écriture (WCU) pour les tables utilisant le mode de capacité allouée ou 1 unité de demande d'écriture (WRU) pour les tables utilisant le mode à la demande.
Vous pouvez cqlsh
utiliser le code suivant pour définir la cohérence de toutes les requêtes de la session LOCAL_QUORUM
en cours.
CONSISTENCY LOCAL_QUORUM;
Pour configurer le niveau de cohérence par programmation, vous pouvez définir la cohérence avec les pilotes clients Cassandra appropriés. Par exemple, les pilotes Java de la version 4.x vous permettent de définir le niveau de cohérence dans le app config
fichier comme indiqué ci-dessous.
basic.request.consistency = LOCAL_QUORUM
Si vous utilisez un pilote Java Cassandra version 3.x, vous pouvez spécifier le niveau de cohérence de la session en ajoutant .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM)
comme indiqué dans l'exemple de code suivant.
Session session = Cluster.builder() .addContactPoint(endPoint) .withPort(portNumber) .withAuthProvider(new SigV4AuthProvider("us-east-2")) .withSSL() .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM) .build() .connect();
Pour configurer le niveau de cohérence pour des opérations d'écriture spécifiques, vous pouvez définir la cohérence lorsque vous appelez QueryBuilder.insertInto
avec un setConsistencyLevel
argument lorsque vous utilisez le pilote Java.
Lire les niveaux de cohérence
Amazon Keyspaces prend en charge trois niveaux de cohérence de lecture : ONE
LOCAL_ONE
, et. LOCAL_QUORUM
Au cours d'une LOCAL_QUORUM
lecture, Amazon Keyspaces renvoie une réponse reflétant les mises à jour les plus récentes issues de toutes les opérations d'écriture réussies. L'utilisation du niveau de cohérence ONE
ou LOCAL_ONE
peut améliorer les performances et la disponibilité de vos demandes de lecture, mais la réponse peut ne pas refléter les résultats d'une écriture récemment terminée.
Pour chaque lecture de 4 Ko à l'aide de la cohérence ONE
ou LOCAL_ONE
, vous êtes facturé 0,5 unités de capacité de lecture (RCU) pour les tables utilisant le mode de capacité allouée ou 0,5 unités de demande de lecture (RRU) pour les tables utilisant le mode à la demande. Pour chaque lecture de 4 Ko avec la cohérence LOCAL_QUORUM
, vous êtes facturé 1 unité de capacité de lecture (RCU) pour les tables utilisant le mode de capacité allouée ou 1 unité de demande de lecture (RRU) pour les tables utilisant le mode à la demande.
Niveau de cohérence | Alloué | A la demande |
---|---|---|
ONE |
0,5 RCU (Read Capacity Unit, unité de capacité de lecture) | 0,5 RRU |
LOCAL_ONE |
0,5 RCU (Read Capacity Unit, unité de capacité de lecture) | 0,5 RRU |
LOCAL_QUORUM |
1 RCU | 1 RRU |
Pour spécifier une cohérence différente pour les opérations de lecture, appelez QueryBuilder.select
avec un setConsistencyLevel
argument lorsque vous utilisez le pilote Java.
Niveaux de cohérence non pris en charge
Les niveaux de cohérence suivants ne sont pas pris en charge par Amazon Keyspaces et entraîneront des exceptions.
Apache Cassandra | Amazon Keyspaces |
---|---|
EACH_QUORUM |
Non pris en charge |
QUORUM |
Non pris en charge |
ALL
|
Non pris en charge |
TWO |
Non pris en charge |
THREE |
Non pris en charge |
ANY |
Non pris en charge |
SERIAL |
Non pris en charge |
LOCAL_SERIAL |
Non pris en charge |