Amazon S3 ist mit der Architektur im Dynamo-Papier beschrieben umgesetzt:
http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html
Das Papier konsistente Hashing erklärt, wie und warum die Garantie "Eventual Consistency" ist.
Die Konfliktlösung, über die sie für Dynamo sprechen, wird Benutzern von S3 nicht ausgesetzt. Es wird intern in Amazon-Anwendungen verwendet, aber für S3 ist die einzige Konfliktlösung der letzte Schreibgewinn.
Edit: Werner Vogels hat gesagt: "Dynamo ist nicht direkt als Web-Service extern ausgesetzt, aber Dynamo und ähnliche Amazon-Technologien werden verwendet, um Teile unserer Amazon Web Services wie S3 zu betreiben." http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html
Ich würde betonen, dass er nicht sagt, S3 und Dynamo teilen Komponenten, er sagt ausdrücklich, dass Dynamo selbst ist eine der Technologien, die S3. Alles, was ich von S3 gesehen habe, einschließlich der Vorbehalte, wird angenommen, indem angenommen wird, S3 ist ein schicker Webservice-Wrapper rund um Dynamo mit Authentifizierung, Buchhaltung und einem Last-Write-Wins-Konflikt, der für den Benutzer unsichtbar ist.
Die ursprüngliche Frage war über den zugrunde liegenden Speichermechanismus für S3. Es ist explizit kein verteiltes Dateisystem wie HDFS oder eine nicht-relationale Datenbank wie CouchDB. Dynamo erfüllt diese Rolle.
Es gibt mindestens [eins] (https://sourceforge.net/projects/s3mockup/) S3-äquivalente Lösung, mit der Sie Clients testen können. Sie können einige Informationen finden, indem Sie den Quellcode studieren und vielleicht könnten Sie ihn in Ihrem eigenen Projekt verwenden. –
Schauen Sie sich MogileFS an. Es ist nicht API-kompatibel mit S3 und hat viel weniger Funktionen als S3, aber es macht den grundlegenden Prozess der Verteilung von statischen Dateien über eine Reihe von Low-Cost-Storage-Servern. – melo