Je passais en revue AWS blog et à partir de là, le AWS re: Inventer la vidéo pour comprendre le concept de DynamoDB de mise à l'échelle adaptative et de rafales. Je comprends le concept de WCU et de RCU et l’idée de seaux de rafale s’empilant jusqu’à une période de 300 secondes et que le pic WCU / RCU d’une partition est de 1000/3000.
Heure de début à 23h00 de la vidéo:
(1) La vidéo donne un exemple de table provisionnée avec 500 WCU et 1500 RCU. La table a 1 partition. Le seau d'éclatement après 5 minutes d'inactivité "supposée" devient 500 * 300 = 150K WCU et 1500 * 300 = 450K RCU. Et à partir de là, on en conclut que cette table maintenant avec ce seau de rafale prêt peut offrir jusqu'à 5 minutes de 1K WCU ou 3K RCU soutenu avec une partition
Comment arriver à ce chiffre de "jusqu'à 5 minutes de 1K WCU ou 3K RCU soutenu" ? D'après ce que j'ai compris, cela aurait dû être le calcul pour RCU: 450K / 3K = 150 secondes
(2) Plus bas, après que la table se soit divisée en deux partitions, la WCU / RCU provisionnée étant également répartie entre les 2 partitions à 250/750 respectivement. Avec 2 partitions, le pic RCU double à 6K et le pic WCU double à 2K et par conséquent, ils concluent que le même seau de rafale offre désormais jusqu'à 100 secondes de 2K WCU ou 6K RCU soutenus avec deux partitions. < / p>
Comment en arrivons-nous à ce chiffre de "jusqu'à 100 secondes de 2K WCU ou 6K RCU soutenus" ? D'après ce que j'ai compris, cela aurait dû être le calcul pour RCU: 450K / 6K = 75 secondes
Des experts DynamoDB qui pourraient vous aider à calculer ce chiffre?
3 Réponses :
jusqu'à 5 minutes de 1K WCU ou 3K RCU soutenu
La table peut déjà supporter 500 WCU et 1500 RCU à partir de sa seule capacité provisionnée . Seule une utilisation supérieure à la capacité provisionnée de la table consomme de la capacité de rafale. La table peut supporter 500 WCU à partir de + 500 WCU provisionnés à partir de rafale = 1K WCU, pendant 300 secondes.
Dans le deuxième scénario, le problème est le même. Vous calculez 450000 ÷ 6000, mais vous devriez calculer 450000 ÷ (6000 - 1500) = 100 secondes, car la capacité de rafale n'est consommée qu'au taux de dépassement.
WCU: 15000 / ((1000 * 1) - 500) = 300 secondes
RCU: 45000 / ((3000 * 1) - 1500) = 300 secondes
WCU: 15000 / ((1000 * 2) - 500) = 100 secondes
RCU: 45000 / ((3000 * 2) - 1500) = 100 secondes
Chaque fois que vous n'utilisez pas pleinement le débit d'une partition, DynamoDB réserve une partie de cette capacité inutilisée pour des pics de débit ultérieurs afin de gérer les pics d'utilisation.
DynamoDB conserve actuellement jusqu'à 5 minutes (300 secondes) de capacité de lecture et d'écriture inutilisée.
Notez que ces détails de capacité de rafale pourraient changer à l'avenir.
À titre d'exemple, disons que je provisionne un DDB minimal avec 1RCU.
La capacité maximale de mon compartiment RCU est de 300 secondes RCU. Nous savons qu'une RCU équivaut à 2 lectures de 4 Ko / s. Multiplier cela par les secondes signifie qu'une RCU-seconde équivaut en fait à 2 lectures de 4 Ko.
Nous pouvons utiliser ces 300 jetons (RCU-s) pour lire à la vitesse maximale autorisée par notre table et nos partitions, 600 éléments de 4 Ko, 60 éléments de 40 Ko, 6 éléments de 400 Ko, ou quoi que ce soit entre les deux. p>
Amazon décrit le réapprovisionnement comme une "partie" de la capacité inutilisée, mais il s'agit en réalité de toute "capacité de lecture et d'écriture inutilisée". Rick Houlihan le dit dans https://www.youtube.com/watch?v=kMY0_m29YzU < / a>, pour paraphraser, "si cette table restait inutilisée pendant 5 minutes, elle finirait avec 450k RCU et 150k WCU". Dans le petit tableau que j'ai illustré, c'est 1 RCU-s pour chaque seconde d'inactivité.