2017-03-22 4 views
2

Amazon Dokumentation (http://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel) heißt es:Was bedeutet die Lese-Nach-Schreib-Konsistenz wirklich für das neue Objekt PUT in S3?

"Amazon S3-Lese-nach-Schreiben sorgt für Konsistenz für PUTS neue Objekte in Ihrem S3 Eimer in allen Regionen mit einer Einschränkung"

Wenn Sie den Vorbehalt ignorieren, bedeutet dies, dass ein Client, der ein GET nach einem PUT für ein neues Objekt absetzt, garantiert das richtige Ergebnis erhält. Meine Frage ist, würde die Garantie auch dann gelten, wenn das GET von einem anderen Client als demjenigen stammt, der den PUT erstellt hat (vorausgesetzt natürlich, dass das GET dem PUT chronologisch folgt)? Mit anderen Worten, ist Read-After-Write-Konsistenz einfach Read-Your-Write-Konsistenz oder funktioniert es für alle Clients?

Ich vermute die Antwort ist, dass es global funktioniert, aber keine definitive Antwort finden kann.

Antwort

2

Ja, es wäre konsistent.

Das Konzept eines "Clients" ist irrelevant, da jeder API-Aufruf unabhängig ist.

Die us-east-1-Region (zuvor bekannt als US-Standard) hatte zuvor keine Lese-nach-Schreib-Konsistenz, aber sie ist now provided in all regions.

2

Ich habe immer das gleiche angenommen, d. H. Dass Read-After-Write für alle Clients gilt, nicht nur für den Client, der den Schreibvorgang ausgeführt hat.

Dieser Blog-Eintrag scheint es zu bestätigen (für das, was seinen Wert), aber ich habe auch keine endgültige Antwort auf offizielle AWS docs finden:

https://shlomoswidler.com/2009/12/read-after-write-consistency-in-amazon.html

Was ist Read-After- Konsistenz schreiben?

Konsistenz nach Lesen und Schreiben verschärft die Dinge ein wenig und garantiert die sofortige Sichtbarkeit neuer Daten für alle Clients mit . Mit der Read-after-Write-Konsistenz wird ein neu erstelltes Objekt oder eine Datei- oder Tabellenzeile sofort ohne Verzögerungen sichtbar.