DynamoDB: Schnelle und skalierbare NoSQL-Datenbank von Amazon

Bereits 2007 hat Amazon seine selbst entwickelte Technik Dynamo vorgestellt, ein skalierbarer und hochverfügbarer Key Value Store, den Amazon in verschiedenen Bereichen seiner Infrastruktur einsetzt. Ab sofort steht die Technik mit DynamoDB auch als Cloud-Dienst zur Verfügung. Abgerechnet wird nach Nutzung, wobei aber ein neues Abrechnungsmodell verwendet wird.

Dynamo baut dabei zwar auf der ursprünglichen Dynamo-Technik auf, in den neuen Dienst sind aber auch die Erfahrungen eingeflossen, die Amazon in den vergangenen Jahren mit der Technik gesammelt hat. Beispielsweise kommt die Technik bei Amazons Cloud-Speicherdienst S3 und SimpleDB bereits seit längerem zum Einsatz und DynamoDB ist letztendlich eine Kombination aus der ursprünglichen Dynamo-Technik und SimpleDB.
DynamoDB ist ein von Amazon komplett verwalteter NoSQL-Datenbankdienst, der vor allem schnell und skalierbar ist, wie Amazons Technikchef Werner Vogels schreibt(öffnet im neuen Fenster) .
Antwortzeiten unter 10 Millisekunden dank SSDs
Die Tabellen in DynamoDB können unbegrenzt wachsen. Amazon verteilt die Daten und den Traffic im Hintergrund auf mehrere Server, um die vom Nutzer angeforderte Kapazität zu erreichen. Dabei soll DynamoDB jederzeit geringe und vorhersagbare Latenzen bieten, unabhängig von der Größe der Datenbank. Laut Vogels liegt die Antwortzeit für Objekte bis 1 KByte von EC2 aus im Durchschnitt bei unter 10 Millisekunden.
Um eine möglichst hohe Geschwindigkeit zu erreichen, speichert Amazon die Daten auf SSDs und repliziert sie synchron über mehrere Rechenzentren hinweg. Damit keine Daten verloren gehen, liegen sie immer in mindestens drei Rechenzentren vor.
Flexibles Datenmodell
Zudem ist DynamoDB flexibel, das heißt, es werden keine Datenmodelle vorgegeben. DynamoDB-Tabellen haben keine festen Schemata, jeder einzelne Eintrag kann andere Attribute verwenden. Auf Wunsch kann zudem eine höhere Konsistenz angefordert werden, das aber geht zulasten der Geschwindigkeit.
In der aktuellen Version stehen zwei Arten von primären Schlüsseln zur Verfügung: einfache Hash-Keys und Composite-Hash-Keys beziehungsweise Range-Keys. Bei Letzteren kann ein Teil des Schlüssels einen ganzen Bereich an Werten umfassen, so dass beispielsweise alle Einkäufe eines Kunden in den letzten 24 Stunden ausgewählt werden können.
Abrechnung nach Speichermenge und Zugriffen pro Sekunde
Abgerechnet wird nach Nutzung: Pro GByte an gespeicherten Daten verlangt Amazon 1 US-Dollar pro Monat zuzüglich der reservierten Request-Kapazität. Für das Schreiben von 10 Kapazitätseinheiten verlangt Amazon 0.01 US-Dollar. Ebenso viel fällt für das Lesen von 50 Kapazitätseinheiten an. Eine solche Kapazitätseinheit entspricht bei Objekten bis zu 1 KByte einem Schreib- oder Lesezugriff pro Sekunde.
Wenn herkömmliche Datenbanken an ihre Grenzen stoßen
Entwickelt wurde Dynamo ursprünglich für Amazons eigene E-Commerce-Plattform, da Amazon vor allem in seinen Anfangsjahren an die Grenzen kommerzieller Datenbanklösungen stieß, bis diese nicht mehr ohne erhebliche Risiken genutzt werden konnten. Eingesetzt wurde der Key-Value-Store unter anderem für den Einkaufskorb und die Session-Verwaltung. Ein Ausfall dieser Systeme ist für Amazon mit einem direkten Umsatzausfall verbunden.
Auf Basis des von Amazon veröffentlichten Aufsatzes zu Dynamo entstanden später diverse NoSQL-Datenbanken, darunter Apache Cassandra, Voldemort und Riak.
Details zu Amazon DynamoDB finden sich unter aws.amazon.com/DynamoDB(öffnet im neuen Fenster) .



