Warum gibt mein Amazon DynamoDB GetItem-Vorgang nicht die neuesten Daten zurück, obwohl PutItem erfolgreich ist?

Lesedauer: 2 Minute
0

Wenn ich einen Datensatz in eine Tabelle schreibe, gibt PutItem eine erfolgreiche HTTP 200-Antwort zurück. Wenn ich jedoch versuche, das Element mit einer Leseanforderung abzurufen, gibt Amazon DynamoDB den Datensatz nicht zurück.

Lösung

Dies geschieht in der Regel, wenn Sie einen letztendlich konsistenten Lesevorgang verwenden, um auf ein Element unmittelbar nach dem Schreiben des Elements in eine Tabelle zuzugreifen. GetItem liefert standardmäßig einen letztendlich konsistenten Lesevorgang. Wenn Sie Ihre Leseanforderung nach einer kurzen Zeit wiederholen, sollte die Antwort die neuesten Daten in der Tabelle für dieses Element zurückgeben.

Wenn Sie die neuesten Daten abrufen möchten, sobald die Schreibanforderung erfolgreich ist, setzen Sie den Parameter ConsistentRead auf true. Dies ermöglicht strikt konsistente Lesevorgänge. Beachten Sie hinsichtlich strikt konsistenter Lesevorgänge Folgendes:

  • Bei strikt konsistenten Lesevorgängen kann die Latenzzeit höher sein.
  • Strikt konsistente Lesevorgänge werden für globale sekundäre Indizes nicht unterstützt.
  • Strikt konsistente Lesevorgänge erfordern einen doppelt so hohen Durchsatz wie letztendlich konsistente Lesevorgänge. Das bedeutet, dass strikt konsistente Lesevorgänge doppelt so viel kosten wie letztendlich konsistente Lesevorgänge. Weitere Informationen finden Sie unter Preise für bereitgestellte Kapazität oder Preise für On-Demand-Kapazität.

Eine Beispielanforderung, die strikt konsistente Lesevorgänge verwendet, finden Sie unter Elementattribute abrufen.


Ähnliche Informationen

PutItem

Lesekonsistenz

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren