Ma table DynamoDB est limitée

Date de la dernière mise à jour : 09/01/2020

Les opérations de lecture ou d'écriture sur ma table Amazon DynamoDB sont limitées. D'où vient le problème et comment le résoudre ?

Brève description

Chaque partition d'une table DynamoDB est soumise à une limite stricte de 1 000 unités de capacité d'écriture et de 3 000 unités de capacité de lecture. Si votre charge de travail est inégalement répartie entre les partitions, ou que la charge de travail repose sur de courtes périodes avec une utilisation élevée (une rafale d'activité de lecture ou d'écriture), la table peut être limitée.

La capacité adaptative de DynamoDB augmente automatiquement la capacité de débit pour les partitions à trafic élevé. Cependant, chaque partition est toujours soumise à la limite stricte. Cela signifie que la capacité adaptative ne peut pas résoudre des problèmes plus importants avec votre conception de table ou de partition. Pour éviter les partitions en surchauffe et les limitations, optimisez votre structure de table et de partition.

Solution

Avant d'implémenter l'une des solutions suivantes, utilisez Amazon CloudWatch Contributor Insights pour rechercher les éléments les plus consultés et les plus limités dans votre table. Ensuite, utilisez les solutions qui correspondent le mieux à votre cas d'utilisation pour résoudre les limitations.

  • Distribuez les opérations de lecture et d'écriture aussi uniformément que possible sur votre table. Une partition en surchauffe peut dégrader les performances globales de votre table. Pour plus d'informations, consultez Conception de clés de partition pour répartir votre charge de travail de manière uniforme.
  • Implémentez une solution de mise en cache. Si votre charge de travail est principalement un accès en lecture aux données statiques, les résultats des requêtes peuvent être transmis beaucoup plus rapidement si les données se trouvent dans un cache bien conçu plutôt que dans une base de données. DynamoDB Accelerator (DAX) est un service de mise en cache qui offre des performances en mémoire rapides pour votre application. Vous pouvez également utiliser Amazon ElastiCache.
  • Implémentez de nouvelles tentatives après erreur et des interruptions exponentielles Les interruptions exponentielles peuvent améliorer la fiabilité d'une application en utilisant des temps d'attente progressivement plus longs entre les tentatives. Si vous utilisez un kit SDK AWS, cette logique est intégrée. Dans le cas contraire, envisagez d'implémenter manuellement des interruptions exponentielles. Pour plus d'informations, consultez Nouvelles tentatives après erreur et interruptions exponentielles dans AWS.