Wie löst man den Durchsatzfehler für Dynamodb?

8

Traceback (die letzte Ausgabe von der Konsole):

%Vor%     
Onkar Kundargi 17.07.2015, 04:25
quelle

2 Antworten

10

Es gibt zwei Möglichkeiten, wie Sie mit diesem Problem umgehen können:

  1. Erhöhen Sie den Durchsatz (für diese Option müssen Sie mehr bezahlen).

  2. Normalerweise müssen wir an manchen Stellen die Logik auf Anwendungsebene implementieren. Rufen Sie zum Beispiel dynamoDB auf, um nach einer Ausnahme zu suchen. Wenn der Durchsatz überschritten wird, ruhen Sie für einige Sekunden und rufen Sie die gleiche Abfrage erneut (das haben wir in unserer App implementiert).

Harshal Bulsara 17.07.2015, 06:34
quelle
15

DynamoDB verwendet ein bereitgestelltes Durchsatzmodell für Lese- und Schreibvorgänge. Das bedeutet, dass Ihre Anwendung Fehler erhalten wird, wenn sie versucht, mehr Lese- oder Schreibvorgänge auszuführen, als Sie der Tabelle zugewiesen haben.

AWS hat eine Reihe von Dingen getan, um damit zu helfen:

  • Die AWS SDK-Clients werden die Anfrage mehrmals wiederholen, bevor Sie eine ProvisionedThroughputExceededException
  • sehen
  • Bis zu fünf Minuten ungenutzte Kapazität können in Bursts um Spikes in Anfragen aufzunehmen
  • Sie können die provisionierten Lese- / Schreibvorgänge für eine Tabelle unbegrenzt täglich erhöhen (um mehr Lese- / Schreibvorgänge pro Sekunde auszuführen)
  • Sie können den bereitgestellten Durchsatz auf einer Tabelle 9 Mal am Tag (4 Mal im ersten Mal) verringern 4 Stunden und jeweils 1 in den restlichen 4 Stunden Fenster) (um Geld zu sparen)
  • Sie können Dynamic DynamoDB , eine Drittanbieter-App, verwenden , um die Skalierung des bereitgestellten Durchsatzes automatisch zu verwalten

Abhängig von der Art der App, die Sie erstellen, können Sie verschiedene Maßnahmen ergreifen, um mit diesen Fehlern umzugehen:

  • Batch-Anwendungen oder Anwendungen mit langer Laufzeit können diese Anfragen zurückweisen und erneut versuchen, wenn sie auftreten, um die Verwendung der Tabelle zu begrenzen
  • Beim Massenladen oder Bulk-Lesen aus einer Tabelle können Sie den Durchsatz manuell heraufskalieren und reduzieren, nachdem Sie fertig sind
  • Bei einer transaktionsorientierten Anwendung können Sie sicherstellen, dass Ihr Durchsatz für die Bereitstellung über dem für die Ausführung der Anwendung erforderlichen Wert liegt
  • Verwenden Sie Dynamic DynamoDB oder Skriptänderungen am Tabellendurchsatz selbst
JaredHatfield 17.07.2015 20:26
quelle

Tags und Links