Modes de capacité de lecture/écriture dans Amazon Keyspaces - Amazon Keyspaces (pour Apache Cassandra)

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.

Modes de capacité de lecture/écriture dans Amazon Keyspaces

Amazon Keyspaces propose deux modes de capacité de lecture/écriture pour traiter les lectures et les écritures sur vos tables :

  • À la demande (par défaut)

  • Alloué

Le mode de capacité de lecture/écriture que vous choisissez contrôle la façon dont vous êtes facturé pour le débit de lecture et d'écriture et comment la capacité de débit de table est gérée.

Mode de capacité à la demande

Le mode de capacité à la demande d'Amazon Keyspaces (pour Apache Cassandra) est une option de facturation flexible capable de traiter des milliers de demandes par seconde sans planification des capacités. Cette option propose une pay-per-request tarification pour les demandes de lecture et d'écriture afin que vous ne payiez que pour ce que vous utilisez.

Lorsque vous choisissez le mode à la demande, Amazon Keyspaces peut augmenter instantanément la capacité de débit de votre table jusqu'à n'importe quel niveau de trafic précédemment atteint, puis redescendre à la baisse lorsque le trafic des applications diminue. Si le niveau de trafic d'une charge globale atteint un nouveau pic, le service s'adapte rapidement pour augmenter la capacité de débit de votre table. Vous pouvez activer le mode de capacité à la demande pour les tables nouvelles et existantes.

Le mode à la demande est une bonne option si l'une des conditions suivantes est remplie :

  • Vous créez des tables avec des charges de travail inconnues.

  • Vous avez un trafic imprévisible au niveau de l'application.

  • Vous préférez ne payer qu'à l'utilisation.

Pour démarrer avec le mode à la demande, vous pouvez créer une nouvelle table ou mettre à jour une table existante pour utiliser le mode capacité à la demande à l'aide de la console ou avec quelques lignes de code CQL (Cassandra Query Language). Pour plus d’informations, consultez Tables.

Unités de demande de lecture et unités de demande d'écriture

Avec les tables du mode de capacité à la demande, vous n'avez pas besoin de spécifier à l'avance le débit de lecture et d'écriture que vous comptez utiliser par votre application. Amazon Keyspaces vous facture les lectures et les écritures que vous effectuez sur vos tables en termes d'unités de demande de lecture (RRU) et d'unités de demande d'écriture (WRU).

  • Une RRU représente une LOCAL_QUORUM ou deux demandes de LOCAL_ONE lecture pour une ligne d'une taille maximale de 4 Ko. Si vous devez lire une ligne de plus de 4 Ko, l'opération de lecture utilise des RRU supplémentaires. Le nombre total de RRU requis dépend de la taille de la ligne et de l'utilisation ou pas de la cohérence de lecture LOCAL_QUORUM ou LOCAL_ONE. Par exemple, la lecture d'une ligne de 8 Ko nécessite 2 RRU utilisant la cohérence de lecture LOCAL_QUORUM et 1 RRU si vous choisissez la cohérence de lecture LOCAL_ONE.

  • Un WRU représente une écriture pour une ligne d'une taille maximale de 1 Ko. Toutes les écritures utilisent la cohérence LOCAL_QUORUM et il n'y a pas de frais supplémentaires pour l'utilisation de transactions légères (LWT). Si vous devez écrire une ligne supérieure à 1 Ko, l'opération d'écriture utilise des WRU supplémentaires. Le nombre total de WRU requis dépend de la taille de la ligne. Par exemple, si la taille de votre ligne est de 2 Ko, vous avez besoin de 2 WRU pour effectuer une requête d'écriture.

Pour de plus amples informations sur les niveaux de cohérence pris en charge, veuillez consulter Niveaux de cohérence en lecture et écriture pris en charge par Apache Cassandra et coûts associés.

Trafic de pointe et propriétés de scalabilité

Les tables Amazon Keyspaces qui utilisent le mode capacité à la demande s'adaptent automatiquement au volume de trafic de votre application. Le mode de capacité à la demande peut gérer jusqu'à deux fois le trafic de pointe précédent d'une table. Par exemple, le modèle de trafic de votre application peut varier entre 5 000 et 10 000 lectures de LOCAL_QUORUM par seconde, 10 000 lectures par seconde étant le pic de trafic précédent.

Avec ce modèle, le mode de capacité à la demande prend instantanément en charge un trafic soutenu pouvant atteindre 20 000 lectures par seconde. Si votre application présente un trafic de 20 000 lectures par seconde, ce pic devient votre nouvelle capacité de pointe précédente, permettant ainsi au trafic futur d'atteindre jusqu'à 40 000 lectures par seconde.

Si vous avez besoin de plus du double de votre pic précédent sur une table, Amazon Keyspaces alloue automatiquement plus de capacité à mesure que votre volume de trafic augmente. Cela permet de s'assurer que votre table dispose d'une capacité de débit suffisante pour traiter les demandes supplémentaires. Toutefois, vous pouvez observer des erreurs de capacité de débit insuffisante si vous dépassez le double de votre pic précédent en 30 minutes.

Par exemple, supposons que le modèle de trafic de votre application varie entre 5 000 et 10 000 lectures fortement cohérentes par seconde, où 20 000 lectures par seconde correspondent au pic de trafic atteint précédemment. Dans ce cas, le service vous recommande d'espacer votre croissance de trafic sur au moins 30 minutes avant de conduire jusqu'à 40 000 lectures par seconde.

Pour savoir comment estimer la consommation de capacité de lecture et d'écriture d'une table, voirComment estimer la consommation de capacité du débit de lecture et d'écriture dans Amazon Keyspaces.

Pour en savoir plus sur les quotas par défaut de votre compte et sur la façon de les augmenter, reportez-vous à la section Quotas pour Amazon Keyspaces (pour Apache Cassandra).

Débit initial pour le mode de capacité à la demande

Si vous créez une table avec un mode de capacité à la demande ou basculez une table existante vers le mode de capacité à la demande pour la première fois, la table possède les paramètres suivants du trafic de pointe précédent, même si la table n'a pas encore opéré de trafic en mode de capacité à la demande :

  • Table nouvellement créée avec mode capacité à la demande : le pic précédent était de 2 000 WRU et 6 000 RRU. Vous pouvez poursuivre jusqu'à doubler le pic précédent immédiatement. Cela permet aux tables à la demande nouvellement créées de servir jusqu'à 4 000 WRU et 12 000 RRU.

  • Table existante basculée vers le mode de capacité à la demande : le trafic de pointe précédent équivaut à la moitié des unités de capacité en écriture (WCU) et des unités de capacité en lecture (RCU) allouées à la table ou aux paramètres pour une table nouvellement créée avec le mode de capacité à la demande, selon la valeur la plus élevée.

Mode de capacité de débit provisionnée

Si vous choisissez le mode de capacité de débit alloué vous spécifiez le nombre de lectures et d'écritures par seconde requis pour votre application. Cela vous permet de gérer votre utilisation d'Amazon Keyspaces afin de rester au niveau ou en dessous d'un taux de demandes défini afin d'optimiser le prix et de garantir la prévisibilité. Pour en savoir plus sur la mise à l'échelle automatique du débit alloué, reportez-vous à la section Gérez automatiquement la capacité de débit grâce au dimensionnement automatique d'Amazon Keyspaces.

Le mode de capacité de débit alloué est une bonne option si l'une des conditions suivantes est vraie :

  • Votre application présente un niveau de trafic prévisible.

  • Vous exécutez des applications dont le trafic est constant ou évolue progressivement.

  • Vous pouvez prévoir les besoins en capacité pour optimiser le prix.

Unités de capacité en lecture et unités de capacité en écriture

Pour les tables en mode alloué, vous spécifiez votre capacité de débit en termes d'unités de capacité en lecture (RCU) et d'unités de capacité en écriture (WCU) :

  • Un RCU représente une lecture de LOCAL_QUORUM par seconde ou deux lectures de LOCAL_ONE par seconde, pour une ligne d'une taille maximale de 4 Ko. Si vous devez lire une ligne de plus de 4 Ko, l'opération de lecture utilise des RCU supplémentaires.

    Le nombre total de RCU requis dépend de la taille de la ligne et du nombre de lecture de LOCAL_ONE ou de LOCAL_QUORUM souhaitées. Par exemple, si la taille de votre ligne est de 8 Ko, vous avez besoin de 2 RCU pour supporter une lecture de LOCAL_QUORUM par seconde et d'1 RCU si vous choisissez les lectures de LOCAL_ONE.

  • Une WCU représente une écriture par seconde pour une ligne d'une taille maximale de 1 Ko. Toutes les écritures utilisent la cohérence LOCAL_QUORUM et il n'y a pas de frais supplémentaires pour l'utilisation de transactions légères (LWT). Si vous devez écrire une ligne supérieure à 1 Ko, l'opération d'écriture utilise des WCU supplémentaires.

    Le nombre total de WCU requis dépend de la taille de la ligne. Par exemple, si la taille de votre ligne est de 2 Ko, vous avez besoin de 2 WCU pour supporter une demande d'écriture par seconde. Pour plus d'informations sur l'estimation de la consommation de capacité de lecture et d'écriture d'une table, consultezComment estimer la consommation de capacité du débit de lecture et d'écriture dans Amazon Keyspaces.

Si votre application lit ou écrit des lignes plus grandes (jusqu'à la taille de ligne maximale d'Amazon Keyspaces de 1 Mo), elle consomme davantage d'unités de capacité. Pour en savoir plus sur l'estimation de la taille des lignes, consultezCalcul de la taille des lignes dans Amazon Keyspaces. Par exemple, supposons que vous créiez une table allouée avec 6 RCU et 6 WCU. Avec ces paramètres, votre application pourrait effectuer les opérations suivantes :

  • Effectuez des LOCAL_QUORUM lectures allant jusqu'à 24 Ko par seconde (4 Ko × 6 RCU).

  • Effectuez des lectures de LOCAL_ONE allant jusqu'à 48 Ko par seconde (deux fois plus de débit de lecture).

  • Écrivez jusqu'à 6 Ko par seconde (1 Ko × 6 WCU).

Le Débit alloué est la quantité maximum de capacité qu'une application peut consommer à partir d'une table. Si votre application dépasse votre capacité de débit alloué, vous pouvez observer des erreurs de capacité insuffisante.

Par exemple, une demande de lecture dont la capacité de débit est insuffisante échoue avec une Read_Timeout exception et est publiée dans la ReadThrottleEvents métrique. Une demande d'écriture dont la capacité de débit est insuffisante échoue avec une Write_Timeout exception et est publiée dans la WriteThrottleEvents métrique.

Vous pouvez utiliser Amazon CloudWatch pour surveiller vos indicateurs de débit provisionnés et réels ainsi que les événements de capacité insuffisante. Pour plus d’informations sur ces métriques, consultez Statistiques et dimensions d'Amazon Keyspaces.

Note

Des erreurs répétées dues à une capacité insuffisante peuvent entraîner des exceptions spécifiques au pilote côté client, par exemple si le pilote DataStax Java échoue avec un. NoHostAvailableException

Pour modifier les paramètres de capacité de débit des tables, vous pouvez utiliser l'instruction AWS Management Console ou l'ALTER TABLEinstruction à l'aide de CQL. Pour plus d'informations, voir. ALTER TABLE

Pour en savoir plus sur les quotas par défaut de votre compte et sur la façon de les augmenter, reportez-vous à la section Quotas pour Amazon Keyspaces (pour Apache Cassandra).

Modes de gestion et de visualisation de la capacité

Vous pouvez interroger la table système dans l'espace de touches du système Amazon Keyspaces pour consulter les informations relatives au mode capacité relatives à une table. Vous pouvez également voir si une table utilise le mode de capacité de débit à la demande ou allouée. Si la table est configurée avec le mode de capacité de débit alloué, vous pouvez voir la capacité de débit alloué pour la table.

Exemple

SELECT * from system_schema_mcs.tables where keyspace_name = 'mykeyspace' and table_name = 'mytable';

Une table configurée avec le mode de capacité à la demande renvoie ce qui suit.

{ 'capacity_mode': { 'last_update_to_pay_per_request_timestamp': '1579551547603', 'throughput_mode': 'PAY_PER_REQUEST' } }

Une table configurée avec le mode de capacité de débit alloué renvoie ce qui suit.

{ 'capacity_mode': { 'last_update_to_pay_per_request_timestamp': '1579048006000', 'read_capacity_units': '5000', 'throughput_mode': 'PROVISIONED', 'write_capacity_units': '6000' } }

La valeur last_update_to_pay_per_request_timestamp est mesurée en millisecondes.

Pour modifier la capacité de débit alloué d'une table, utilisez ALTER TABLE.

Considérations relatives au changement de mode de capacité

Lorsque vous passez d'une table du mode capacité allouée au mode capacité à la demande, Amazon Keyspaces apporte plusieurs modifications à la structure de votre table et de vos partitions. Ce processus peut prendre plusieurs minutes. Pendant la période de commutation, votre table fournit un débit compatible avec les montants WCU et RCU précédemment alloués.

Si vous passez du mode de capacité à la demande au mode de capacité allouée, votre table fournit un débit correspondant au trafic de pointe précédent atteint lorsque la table était en mode de capacité à la demande.

Note

Vous ne pouvez passer du mode de capacité provisionné au mode à la demande qu'une seule fois par période de 24 heures.