Amazon's Dynamo: Ein verteiltes Speichersystem für Schlüssel/Wert- Paare mit schließlicher Konsistenz Von Benjamin Riedel.

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

Netzwerke in der Informationstechnik
Eine dynamische Menge, die diese Operationen unterstützt,
Übersicht RAID-Verfahren Labor für Betriebsdatenverarbeitung
PC-Cluster.
Replikationsarchitekturen Informationsverwaltung von Netzen Sommersemester 2003 Konrad Kretschmer
SAP R/3 - Speichermanagement
Netzwerke im Dialogmarketing
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (15 Hashverfahren: Verkettung der Überläufer) Prof. Th. Ottmann.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Smartphones im Kanzleinetz Vergleich der technischen Umsetzung COLLEGA - TAG Freitag, 27. November 2009.
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
Raid 0.
In dem Login-Bereich können lektorat.de-Kunden ihren Datensatz eigenständig pflegen und aktualisieren. Wie gelangen Sie in diesen Bereich? Der Zugang zum.
Typo 3. INSTALLATION TYPO3 INSTALLTOOL EXTENSIONS UND TEMPLATES INSTALLATION TEMPLAVOILA USERMANAGEMENT Inhalt:
Verteilte Algorithmen und Datenstrukturen Kapitel 4: Caching Christian Scheideler Institut für Informatik Universität Paderborn.
Datenbanken und Datenmodellierung
Replikation und Synchronisation
Die Management-Tools von Z&H COACH beinhalten zentrale Hilfsmittel für ein Management-System. Sorgfältig angewendet führen diese Tools Ihr Unternehmen.
Internet-Grundtechnologien. Client / Server Client („Kunde“): fordert Information / Datei an im Internet: fordert Internetseite an, z.B.
SAN & NAS © Nicole Waibel Index NAS SAN Quellen
Binärbäume.
Aufgabe 1. Herausforderungen I Persistente Datenspeicherung: Möchte man jeden Morgen alle Käufe und Verkäufe neu zusammensuchen? Sehr große Datenmengen:
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
© 2015 TravelTainment NoSQL – Eine Alternative zu relationalen Datenbanken Dominik Schmitz.
RAID-Systeme - Standards - Leistungsmerkmal - Redundanz - Datensicherheit eine Präsentation von Jochen Throm an der Berufsakademie Mosbach.
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
Igor Vaynerman ISMOD-V ÜbungSS061 ISMOD-V Übung 3 Igor Vaynerman 8 Juni 2006.
Erfa 80. Erfa-Kreis-Sitzung Stuttgart Stuttgart Auftragsdatenverarbeitung Möglichkeiten und Grenzen.
Informationsgesellschaft Informations- und Kommunikationstechnologien Seid klug wie die Schlangen! (Matthäus 10,16)
RAID Controller Guide - Allgemeines - Glossar - RAID Level - RAID Controller.
Import java.util.*; Hilfsklassen, die man eigentlich immer braucht.
Erzeugung von hoch skalierbaren virtuellen Welten Seminar Algorithmen zur Unterstützung von Immersive Gaming Philip Mildner, 8. Oktober 2008.
LINUX II Samba Verbindung mit Windows. Samba Übersicht ● Samba dient zur Verbindung von Linux-Clients mit Windows Rechnern ( samba-client ) sowie von.
Drupal Installation Versionen 7.43 & Allgemein (bei beiden Versionen) Xampp Control- Panel öffnen Server starten, sonst kein Zugriff auf localhost.
PHPUG Karlsruhe 1. Juli 2009 Zend_ProgressBar und Zend_Tag_Cloud Ben Scholzen Software Entwickler DASPRiD's.
Anforderungen an die neue Datenstruktur
Lars Tremmel ETH Informatikdienste Managed Services September 2013
DOAG SID Data Warehouse
Ihr Reservierungs-tool mit Festpreis
WS2016: Container von A bis Z
Formatieren von Arbeitshilfen und Dokumentationen
Google App Engine - Technische Stärken und Schwächen
Übungsblatt 2 Erläuterungen Wintersemester 16/17 DBIS.
Studiengang Informatik FHDW
VFP-Praxis Reparatur von VFP Datenbanken
Klausur „Diskrete Mathematik II“
Systeme II 6. Die Anwendungsschicht
1 in Meter in Sekunden Punkt H.
Firewall.
Die Stadt Aarau setzt für das Backup im RZ auf
Cloud Computing.
Hexadezimale Darstellung von Zahlen
Ich brauche eine Web-Seite vom Server im Internet
für das Herunterladen von Filmen
Datenbanken online sowie offline verfügbar machen
Kurzanleitung zur Nutzung von Video- s und der Kontaktübersicht
Routing … … die Suche nach dem Weg..
Cassandra: Ein verteiltes Speichersystem für strukturierte Daten mit schließlicher Konsistenz (Open-Source-Projekt) Andreas Prante
Von Wietlisbach, Lenzin und Winter
Webinar 21.Februar :00 Uhr i-views 5.0 Die Smart Data Engine –
Benutzerhinweise für Mercateo
TEAMWORK 2000 Suchmaschine
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
Tutorstunde 10.
DSA Hauptmerkmale: nach Eingabe einer Leistung / Verbandsabzeichen prüft das Programm, ob die Bedingung.
Von Wietlisbach, Lenzin und Winter
ZST ZIMO Software Tool © Ing. Arnold Hübsch 2005.
E-Aufgaben in Stud.IP mit ViPS – erste Schritte –
 Präsentation transkript:

Amazon's Dynamo: Ein verteiltes Speichersystem für Schlüssel/Wert- Paare mit schließlicher Konsistenz Von Benjamin Riedel

Vortrag: Amazon's Dynamo Benjamin Riedel 2  weltgrößter Online-Versandhandel  40 Logistikzentren auf m²  Angestellte  Allein in Deutschland: Höchstmarke von 2,8 Mio Bestellungen pro Tag

Vortrag: Amazon's Dynamo Benjamin Riedel 3 Anforderungen Maximale Verfügbarkeit Keine Downtimes Geringe Antwortzeiten auch bei ausgefallenen Servern Writes müssen jederzeit verarbeitet werden können Hohe Skalierbarkeit Keine obere Grenze für Systemgröße Hardwareheterogenität erlauben Das leistet aktuell kein RDBMS!

Vortrag: Amazon's Dynamo Benjamin Riedel 4 Dynamo Amazon entwickelt selbst Systeme, die zu diesen Anforderungen passen Bisheriger Höhepunkt: Dynamo (2006)

Vortrag: Amazon's Dynamo Benjamin Riedel 5 Überblick Allgemeine Grundlagen Aufbau von Dynamo Konsistenz und Verfügbarkeit Ausblick

Vortrag: Amazon's Dynamo Benjamin Riedel 6 Datenzugriff get(key) Gibt Objekt oder Versionsliste eines Objektes zu einem bestimmten Schlüssel, sowie einen Kontext zurück put(key, context, object) Schreibt Objekt mit Kontext an der Stelle eines Schlüssel ins System Sowohl Schlüssel als auch Objekt werden als Byte-Array betrachtet. Allgemeine Grundlagen

Vortrag: Amazon's Dynamo Benjamin Riedel 7 Nutzung Alles wird durch Services realisiert Bestseller Listen Warenkorb Präferenzen... Jeder Service kann ein eigenes Speichersystem haben Jeder Service, der nur direkte Key-Zugriffe benötigt nutzt Dynamo (z.B die oberen Drei) Allgemeine Grundlagen

Vortrag: Amazon's Dynamo Benjamin Riedel 8 Datenspeicherung Daten werden lokal auf Knoten gespeichert Dabei kann je nach Präferenz des Services entschieden werden, was zur Speicherung verwendet wird Berkeley Database MySQL Buffer im Arbeitsspeicher mit persistenter Speicherung Allgemeine Grundlagen

Vortrag: Amazon's Dynamo Benjamin Riedel 9 Hohe Ansprüche Services rufen sich gegenseitig auf Damit es zu keinen Verzögerungen kommt: Service Level Agreements Jeder Service versichert eine Regelantwortzeit bei bestimmter Last (z.B. 300ms bei 500 Anfragen/Sekunde) Die Regel heißt für Amazon: 99,9% der Fälle! Allgemeine Grundlagen

Vortrag: Amazon's Dynamo Benjamin Riedel 10 Consistent Hashing Dynamoknoten sind ringförmig angeordnet Dieser Ring wird auf einen Ring aller möglichen MD5-Hashs (128bit) abgebildet Aufbau von Dynamo

Vortrag: Amazon's Dynamo Benjamin Riedel 11 Consistent Hashing (Forts.) Schlüssel werden ebenfalls gehashed Schlüsselhash legt fest, wo im Ring etwas gespeichert wird Jeder Knoten verwaltet den Bereich zwischen seinem Vorgänger und sich Aufbau von Dynamo

Vortrag: Amazon's Dynamo Benjamin Riedel 12 N Jede Datei wird auf N Knoten gespeichert Dabei werden die im Uhrzeigersinn ersten N gesunden Knoten von der Schlüsselposition aus gewählt Für Schlüssel k wären dies B, C, D Aufbau von Dynamo

Vortrag: Amazon's Dynamo Benjamin Riedel 13 Virtual Nodes System läuft auf Standardhardware Geschwindigkeit der einzelnen Server stark unterschiedlich Um Stärke schnellerer Server zu nutzen, verwaltet jeder Server ( )mehrere virtuelle Knoten Aufbau von Dynamo

Vortrag: Amazon's Dynamo Benjamin Riedel 14 Serververteilung Dynamo ist für den Umgang mit Ausfällen ausgelegt Defekte Serverhardware Netzwerkprobleme Stromausfälle Naturkatastrophen … Daher sind die Rechenzentren weltweit verteilt Aufbau von Dynamo

Vortrag: Amazon's Dynamo Benjamin Riedel 15 Server hinzufügen Neuer Server wird im System angemeldet Übernimmt entsprechend seiner Größe x Knoten von anderen Servern Bsp: neuer Server ( ) übernimmt Knoten C Aufbau von Dynamo

Vortrag: Amazon's Dynamo Benjamin Riedel 16 Server entfernen Analog zum Hinzufügen Restliche Server übernehmen gleichmäßig entsprechend ihrer Stärke Knoten des entfernten Bsp: Server wird entfernt Aufbau von Dynamo

Vortrag: Amazon's Dynamo Benjamin Riedel 17 Gossip Jeder Server hat Informationen über die anderen Server im Ring Pro Sekunde vergleicht jeder Server seine Informationen mit einem zufälligen anderen Server Aufbau von Dynamo

Vortrag: Amazon's Dynamo Benjamin Riedel 18 R & W Dynamo lässt Nutzer entscheiden, auf wie viele der N Kopien der Schreibzugriff bzw der Lesezugriff erfolgreich sein muss Gesteuert über Variablen R(read) und W (write) Aus Verfügbarkeitsgründen nutzen viele Services Werte von R < N und W < N Dies kann dazu führen, dass die Daten im System nicht konsistent sind Aufbau von Dynamo

Vortrag: Amazon's Dynamo Benjamin Riedel 19 R & W (Forts.) Bsp: Häufige Konfiguration: N=3, R=2, W=2 Knoten 1 fällt aus Update auf Datei x erreicht nur K2 und K3 K1 funktioniert wieder, K2 fällt aus get() auf Datei x, es kommen die Versionen von K1 und K3 zurück, also die Version vor dem Update und die danach System muss erkennen, welche neuer ist Konsistenz & Verfügbarkeit

Vortrag: Amazon's Dynamo Benjamin Riedel 20 Vector Clocks Im Kontext steht, welcher Server wie oft einen Schreibzugriff auf eine Datei koordiniert hat Dies erfolgt über Vector Clocks Eine VC Instanz kann z.B. so aussehen:  ([Sx,1], [Sy,2]) So kann erkannt werden, ob Versionen voneinander abstammen und sie ggf. vereinigen Falls Versionen nicht automatisch zu vereinigen sind, erfolgt Semantic Reconciliation, d.h Service bekommt alle Versionen und muss selbst mit Hilfe von Hintergrundinformationen vereinigen Konsistenz & Verfügbarkeit

Vortrag: Amazon's Dynamo Benjamin Riedel 21 Vector Clocks (Forts.) Bsp: Sx schreibt 2 mal Datei Sy schreibt in diese Version Sz schreibt in dieselbe Version, ohne die von Sy zu kennen Sx bekommt und schreibt das Ergebnis der Sem. Reconc. Konsistenz & Verfügbarkeit

Vortrag: Amazon's Dynamo Benjamin Riedel 22 Semantic Reconciliation - Zahlen Von allen Services bekommen auf ihre Anfrage an Dynamo 99,94% 1 Kopie zurück 0,00057% 2 Kopien zürück 0,00047% 3 Kopien zurück 0,00009% 4 Kopien zurück Konsistenzprobleme trotz nicht vollständig konsistentem System selten! Konsistenz & Verfügbarkeit

Vortrag: Amazon's Dynamo Benjamin Riedel 23 Sloppy Quorum Bei einem System der Größe Amazons gibt es ständig Ausfälle Dynamo ist dafür optimiert Verfügbarkeit wichtigstes Kriterium Bei Ausfall eines Knotens übernimmt der nächste Knoten Sloppy Quorum bedeutet: Um die Anforderungen durch R & W zu erfüllen, reicht es, wenn R/W beliebige Knoten Erfolg zurückmelden – es müssen nicht die eigentlich zuständigen Server sein Konsistenz & Verfügbarkeit

Vortrag: Amazon's Dynamo Benjamin Riedel 24 Sloppy Quorum (Forts.) B fällt aus C ist nun verantwortlich für den Bereich von B E muss Objekte von B mitspeichern Wenn B wiederkommt, schickt E Objekte an B Konsistenz & Verfügbarkeit

Vortrag: Amazon's Dynamo Benjamin Riedel 25 Hinted Handoff Woher weiß E, was er rüberschicken muss? Alle Dateien, die über Sloppy Quorum auf einem Knoten gespeichert werden, werden in einer separaten DB gespeichert Zusätzlich ist markiert (hinted), wo sie eigentlich hätten gespeichert werden sollen E prüft regelmäßig, ob die Knoten, für die es Dinge in der separaten DB gespeichert hat, wieder erreichbar sind Konsistenz & Verfügbarkeit

Vortrag: Amazon's Dynamo Benjamin Riedel 26 Merkle Trees Im Fehlerfall sollen nach Rückkehr eines ausgefallenen Knotens A nicht alle Objekte vom Ersatzknoten B zu A gesendet werden. Stattdessen werden nur geänderte Objekte übertragen Auswahl geänderter Objekte erfordert normalerweise Prüfung aller Objekte Alternative: Jeder Knoten hat für jeden Objektsatz einen Merkle Tree Konsistenz & Verfügbarkeit

Vortrag: Amazon's Dynamo Benjamin Riedel 27 Merkle Trees (Forts.) Bäume, die in ihren Knoten einen Hash des durch den Knoten aufgespannten Teilbaumes speichern Genutzt zum Vergleich zweier Bäume Haben zwei (Teil)Bäume den selben Hashwert, dann sind sie identisch Konsistenz & Verfügbarkeit

Vortrag: Amazon's Dynamo Benjamin Riedel 28 DynamoDB gestartet Teil der Amazon Web Services (AWS) Mietbarer NoSQL-Datenbank-Service, der mit Dynamo arbeitet Bereits im März mehrere Mrd. Zugriffe pro Tag erreicht Genutzt von z.B. News International, Electronic Arts, IMDb Im Juni bereits Jahresziele übertroffen Ausblick

29 Vielen Dank!

Vortrag: Amazon's Dynamo Benjamin Riedel 30 Quellen Amazon-Bestellungen-an-nur-einem-Tag.html ( , Verkaufsrekord) ( , Werner Vogels) Dynamo: Amazon's Highly Available Key-value Store (2007, DeCandia, Deniz Hastorun, Jampani, Kakulapati, Lakshman, Pilchin, Sivisubramanian, Vosshall, Vogels) Eventually Consistent (2007, Werner Vogels)

31