DynamoDB – Burst- und adaptive Kapazität
Um die Drosselung aufgrund von Durchsatzausnahmen zu minimieren, verwendet DynamoDB die Burst-Kapazität, um Nutzungsspitzen zu bewältigen. DynamoDB nutzt die adaptive Kapazität, um ungleichen Zugriffsmustern gerecht zu werden.
Burst-Kapazität
DynamoDB bietet eine gewisse Flexibilität bei der Bereitstellung des Durchsatzes pro Partition durch Bereitstellung von Burst-Kapazität. Wenn Sie den verfügbaren Durchsatz nicht vollständig nutzen, reserviert DynamoDB einen Teil dieser ungenutzten Kapazität für spätere Durchsatz-Bursts, um Nutzungsspitzen zu bewältigen. Mit Burst-Kapazität können unerwartete Lese- oder Schreibanforderungen erfolgreich sein, wo sie andernfalls gedrosselt werden würden.
DynamoDB behält derzeit bis zu fünf Minuten (300 Sekunden) ungenutzte Lese- und Schreibkapazität bei. Während eines gelegentlichen Bursts von Lese- oder Schreibaktivitäten können diese zusätzlichen Kapazitätseinheiten schnell verbraucht werden – sogar schneller als die pro Sekunde bereitgestellte Durchsatzkapazität, die Sie für Ihre Tabelle definiert haben.
Zudem kann DynamoDB die Burst-Kapazität für Wartungsaktivitäten im Hintergrund sowie für andere Aufgaben verbrauchen, ohne Sie vorher zu informieren.
Beachten Sie, dass die Burst-Kapazität in Zukunft geändert werden kann.
Adaptive Kapazität
DynamoDB verteilt Ihre Daten automatisch auf alle Partitionen, die auf mehreren Servern in der AWS Cloud gespeichert werden. Es ist nicht immer möglich, die Lese- und Schreibaktivität jederzeit gleichmäßig zu verteilen. Wenn der Datenzugriff nicht ausgeglichen ist, kann es sein, dass eine „Hot Partition” mehr Lese- und Schreibdatenvolumen erhält als andere Partitionen. Da Lese- und Schreibvorgänge auf einer Partition unabhängig verwaltet werden, tritt eine Drosselung auf, wenn eine einzelne Partition mehr als 3 000 Lesevorgänge oder mehr als 1 000 Schreibvorgänge empfängt. Adaptive Kapazität funktioniert durch automatische Erhöhung der Durchsatzkapazität für Partitionen, die mehr Datenverkehr erhalten.
Um ungleichmäßigen Zugriffsmustern besser gerecht zu werden, ermöglicht die adaptive Kapazität von DynamoDB Ihrer Anwendung, weiterhin zu lesen und auf Hot-Partitionen zu schreiben, ohne gedrosselt zu werden, vorausgesetzt, dass der Datenverkehr die gesamte bereitgestellte Kapazität Ihrer Tabelle oder die maximale Partitionskapazität nicht überschreitet. Die adaptive Kapazität funktioniert durch automatische und sofortige Erhöhung der Durchsatzkapazität für Partitionen, die mehr Datenverkehr erhalten.
Das folgende Diagramm veranschaulicht, wie adaptive Kapazität funktioniert. Die Beispieltabelle wird mit 400 WCUs bereitgestellt, die gleichmäßig über vier Partitionen hinweg gemeinsam genutzt werden, sodass jede Partition bis zu 100 WCUs pro Sekunde bewältigen kann. Partitionen 1, 2 und 3 empfangen Schreibverkehr von jeweils 50 WCU/Sek. Die Partition 4 erhält 150 WCU/Sek. Diese Hot-Partition kann Schreibdatenverkehr akzeptieren, solange sie noch über ungenutzte Burst-Kapazität verfügt, drosselt aber schließlich den Datenverkehr, der 100 WCU/s überschreitet.
Als Reaktion erhöht die adaptive Kapazität von DynamoDB die Kapazität von Partition 4, sodass sie den höheren Workload von 150 WCUs/s ohne Drosselung bewältigen kann.
Die adaptive Kapazität wird für jede DynamoDB-Tabelle ohne zusätzliche Kosten automatisch aktiviert. Die adaptive Kapazität muss nicht ausdrücklich aktiviert oder deaktiviert werden.
Isolieren von Elementen mit häufigen Zugriffen
Wenn eine Anwendung unverhältnismäßig viel Datenverkehr an einzelne oder mehrere Elemente leitet, gleicht die Funktion für adaptive Kapazität die Partitionen so aus, dass häufig aufgerufene Elemente nicht in derselben Partition abgelegt werden. Durch das Isolieren von Elementen, auf die häufig zugegriffen wird, wird die Wahrscheinlichkeit einer Anforderungsdrosselung aufgrund eines Workloads, der das Durchsatzkontingent für eine einzelne Partition überschreitet, reduziert. Sie können eine Sammlung von Elementen auch nach Sortierschlüssel in Segmente aufteilen, sofern es sich bei der Sammlung nicht um Datenverkehr handelt, der durch eine monotone Erhöhung oder Verringerung des Sortierschlüssels verfolgt wird.
Wenn die Anwendung dauernd Datenverkehr in großem Umfang an ein einzelnes Element leitet, gleicht die Funktion für die adaptive Kapazität die Daten so aus, dass eine Partition nur ein einzelnes Element enthält, auf das häufig zugegriffen wird. In dieser Situation kann DynamoDB Durchsatz bis zum Maximum von 3 000 RCUs und 1 000 WCUs für den Primärschlüssel des einzelnen Elements bereitstellen. Die adaptive Kapazität teilt Elementsammlungen nicht auf mehrere Partitionen der Tabelle auf, wenn ein lokaler sekundärer Index in der Tabelle enthalten ist.