Amazons NoSQL-Datenbank DynamoDB: Speichermodell und Hashalgorithmus

AWS verrät zwar relativ viel zum Datenmodell seiner verwalteten DynamoDB verrät, doch für Details zum Speichermodell oder Hash­algorithmus muss man forschen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
DynamoDB unter der Haube – Speichermodell und Hashalgorithmus
Lesezeit: 20 Min.
Von
  • Thomas Drilling
Inhaltsverzeichnis

Obwohl AWS-Nutzer Amazons DynamoDB primär als einfach zu benutzende, via REST-API ansprechbare NoSQL-Datenbank für Programmierer und Sysops-Engineering wahrnehmen, ist der Dienst tief in der Geschichte von Amazon.com verwurzelt. Seit Jahrzehnten bildet er das Speicherfundament der Website des Onlinehändlers. In den Jahren 2000 bis 2004 sah sich Amazon gezwungen, Entwicklung und Bereitstellung der bis dato monolithisch konzipierten Website auf ein dezentrales, Devops-getriebenes und mittels Microservices realisiertes Modell umzustellen. Darin kommuniziert jeder Dienst über eine öffentliche REST-API. Die Amazon Web Services waren also im Grunde ein Nebenprodukt eines neuen Betriebsmodells.

Letztlich betraf dies auch den Storage-Layer. Statt jede Komponente mit einem eigenen Datenbankdienst auszustatten, ersann man bei Amazon DynamoDB zunächst für interne Zwecke. Insbesondere die relationalen Datenbanksysteme von Drittanbietern hatten sich zunehmend als ungeeignet erwiesen. Da die meisten Dienste von Amazon hauptsächlich das Lesen von Primärschlüsseln für ihre Daten mit maximaler Geschwindigkeit als oberste Priorität verlangen, ist DynamoDB als hochverfügbarer Schlüsselwertspeicher mit niedriger Latenz, persistenter Speicherung und hohen Anfrageraten konzipiert.

Von den anderen Amazon-Datenbanken unterscheidet sich DynamoDB vor allem dadurch, dass Entwickler diesen Dienst auf Basis des Durchsatzes und nicht der Speichermenge erwerben. Bei aktiviertem Auto Scaling passt AWS die Datenbank automatisch an. Nutzerinnen können jederzeit Durchsatzänderungen anfordern. Dabei verteilt DynamoDB die Daten und den Datenverkehr mithilfe von SSD-Laufwerken auf mehrere Server, um eine vorhersagbare Leistung gewährleisten zu können. Außerdem ist Elastic MapReduce, die gehostete Hadoop-Variante von AWS, in DynamoDB integriert.