Dynamo: Amazon`s Highly Available Key

Werbung
NoSQL Datenbanken
Seminar:Software as a Service, Cloud-Computing und aktuelle Entwicklungen
Dozent: Dipl. Inf. Andreas Göbel
Philipp Heinze
17. Juni 2010
Gliederung
• Der Begriff NoSQL
• Wichtige Konzepte
• NoSQL-Arten
• Cassandra
• Zusammenfassung
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
2
1. Der Begriff NoSQL
2. Wichtige Konzepte
3. NoSQL Arten
4. Cassandra
5. Zusammenfassung
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
3
1. Der Begriff NoSQL
Entstehung und Bedeutung

Begriff erstmals von Carlo Strozzi 1998 verwendet



bezeichnete RDBMS ohne SQL Interface
2009 durch Eric Ewans wieder bekannt geworden

Suchte Namen für Konferenz

Fand no:sql(east)
Heutige Definition durch Emil Efrem

NoSQL = Not only SQL
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
4
1. Der Begriff NoSQL
Charakteristika NoSQL DBMS

Definition nach nosql-database.org:
Next Generation Databases mostly addressing some of the points: being nonrelational, distributed, open-source and horizontal scalable. The original intention
has been modern web-scale databases. [...] Often more characteristics apply as:
schema-free, easy replication support, simple API, eventually consistent / BASE
(not ACID), and more.[1]
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
5
1. Der Begriff NoSQL
2. Wichtige Konzepte
3. NoSQL Arten
4. Cassandra
5. Zusammenfassung
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
6
2.1 CAP Theorem
Einführung

Erstmals von Eric Brewer im Jahr 2000 formuliert

Axiomatischer Beweis durch Seth Gilbert und Nancy Lynch,
2002

Consistency, Availability und Partition Tolerance bilden
magisches Dreieck

Nur zwei der drei Eigenschaften voll erfüllbar
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
7
2.1 CAP Theorem
Eigenschaften im Detail
Consistency (dt. Konsistenz) ist Mischung aus ACIEigenschaften von ACID


Availability (dt. Verfügbarkeit) bedeutet
 System verkraftet Knotenwegfall


Trotz Knotenausfall stehen 100% der Daten zur Verfügung
Partition Tolerance (dt. Partitionstoleranz) bedeutet
 Gesamtsystem kann trotz ungewollter Teilung in zwei
Teilsysteme weiterarbeiten

Wobei Funktionsumfang eingeschränkt sein kann
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
8
2.1 CAP Theorem
Veranschaulichung
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
9
2.2 BASE
Allgemein
Basically Available, Soft State, Eventual Consistency
(dt. grundsätzlich verfügbar, loser Zustand und schlussendlich
konsistent)
 Gegensätzliches Konzept zu ACID


Verzicht auf strenge Konsistenzforderungen

Datenbank wechselt zwischen Konsistenz und Inkonsistenz

Konsistenz stellt sich automatisch wieder ein
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
10
2.2 BASE
Konsequenzen

Erlaubt einfachere Redundanz der Daten
 Da seltener Synchronisation zwischen Repliken notwendig

Erhöhte Verfügbarkeit, da bei Ausfall weitere Kopien
vorhanden
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
11
2.3 Eventual Consistency
Unterkategorie von Weak Consistency (dt. schwache Konsistenz)
 Benutzer sehen nur unter gewissen Umständen gleiche Daten


Während Inkonsistenzfenster verschiedene Datenversionen
möglich
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
12
2.4 MVCC
Allgemein
Multiversion Concurrency Control
 Ziel: lesende Transaktionen (TA) nie blockieren


Objekte und Transaktionen erhalten Zeitstempel

Objekte besitzen zusätzlich Lesezeitstempel

TA können alle Objekte lesen, deren Zeitstempel kleiner als
eigener ist
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
13
2.4 MVCC
Objekt schreiben
TA darf Objekt schreiben, wenn keine noch jüngere TA Objekt
bereits gelesen hat
 Sonst TA Neustart


Nach erfolgreichem Schreibvorgang neue Objektversion

Zeitstempel auf die der TA gesetzt
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
14
1. Der Begriff NoSQL
2. Wichtige Konzepte
3. NoSQL Arten
4. Cassandra
5. Zusammenfassung
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
15
3.1 Document Stores
Charakteristika
Keine Tabellen oder Schemata, nur lose Ablage in DB
 Tupel sind Documents


Jedes Document erhält eine ID für eindeutige Identifikation

Ablageformate sind JSON, XML und YAML

Simple Abfragen über Attribute oder ID, keine Joins

MapReduce zur Anfragebearbeitung
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
16
3.1 Document Stores
Vertreter


Eigentliche NoSQL Systeme
 z. B. CouchDB, mongoDB, Amazon SimpleDB
Im weiteren Sinne auch RDBMS mit XML-Unterstützung

Oracle, DB2 und MS SQL Server

jedoch keine schema- und relationsfreie Speicherung
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
17
3.1 Document Stores
Use Cases

Geeignet, wenn:
 Hohe (lineare) Skalierbarkeit gefordert

Nur einfache Datenablage mit Grundsuchfunktionen nötig

Lose Schemata & keine/wenige Konsistenzbedingungen
vorhanden

Nicht geeignet:

Strenge Konsistenzanforderung vorhanden
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
18
3.2 Graphdatenbank
Charakteristika

Datenbank wird als Graph gespeichert
 Entitytypen sind Knotenklassen



Beziehungstypen sind Kantenklassen
In graphdatenbankoptimalem Format gespeichert
Traversionsgeschwindigkeit unabhängig von Graphgröße

Da keine Joins nötig

Modell für Knoten nicht zwangsweise gefordert

Beziehungen leicht veränderbar
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
19
3.2 Graphdatenbank
Use Cases

Geeignet für:
 Assoziative Datensätze (Web 3.0)


(Liste aller Freunde meiner Freunde)
Nicht geeignet, wenn:

Selbe Operation auf Vielzahl von Entities auszuführen ist

(Liste aller Benutzer die max. 20 Freunde haben)
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
20
3.3 Key-Value Stores
Allgemein
Daten sind mittels Schlüssel abrufbar
 Operationen in der Regel lediglich insert, update, delete


Zwei große Vertreter:

Google BigTable

Amazon Dynamo
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
21
3.3 Key-Value Stores
BigTable - Allgemein
Paper über BigTable 2006 von Google veröffentlicht
 Anforderungen an Datenbank:



Petabyte an Daten

Hochskalierbar
freie Implementierungen sind HBase, Cassandra und Hypertable
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
22
3.3 Key-Value Stores
BigTable – Tabellen
Tabelle hat Schema, jedoch weniger streng als bei RDBMS
 Tabelle besteht aus Column-Families und Columns


Column-Family enthält (theoretisch unendliche) Menge von
Columns


Columns sind für jedes Key-Value-Paar unterschiedlich
Timestamps besitzen Columns zur Adressierung
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
23
3.3 Key-Value Stores
BigTable – Skalierung
Tabelle aufgeteilt in Tablets und verwaltet von Master
 Tablets werden von Tablet-Servern verwaltet


Master verteilt und teilt Tablets auf Server auf

Lastverteilung durch verschieben von Tablets oder hinzufügen
neuer Tablet-Server zum Verbund


Master nur minimal Single-Point-of-Failure

Da direkte Kommunikation zu Tablet-Servern möglich

Caching der Informationen auf Anwendungsseite
MapReduce Algorithmen anwendbar
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
24
3.3 Key-Value Stores
BigTable - Beispiel
Daten-Backend
com
com
Webschnittstelle
z.B. Websuche
Benutzer
de
uk
[2]
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
25
3.3 Key-Value Stores
Dynamo - Allgemein
Paper über Dynamo 2007 von Amazon veröffentlicht
 Anforderungen an Datenbank:



Hochverfügbarkeit

Geringste Latenz
freie Implementierungen sind Cassandra und Projekt Voldemort
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
26
3.3 Key-Value Stores
Dynamo – Consistent-Hashing
Keys werden auf Ring gehashed mittels Consistent-Hashing
 Knoten n wird auf bestimmte Position ni gehashed


speichert Keys im Interval [ni -1,ni) und ist Koordinator dessen
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
27
3.3 Key-Value Stores
Dynamo – Sloppy Quorum
Damit Aktion erfolgreich ist, müssen x Knoten diese erfolgreich
ausführen
 Ähnlich dem normalen Quorum



Triple (N, R, W)

N = # an Repliken der Keys

R = # von Knoten die Key-Value-Paar zurückliefern müssen

W = # von Knoten die Key-Value-Paar schreiben müssen
Übliche Besetzung (3, 2, 2)
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
28
3.3 Key-Value Stores
Dynamo – Vector Clocks


Nicht immer alle Knoten an Schreiboperation beteiligt
 Versionierung nötig
Versionierung der Key-Value-Paaren mittels Vector
Clocks

Aufbau Vector Clock ([Knotenname, Version], …)

Schreibkoordinator erhöht Version oder fügt Eintrag
hinzu

Zusammenführung von Konflikten durch Anwendung
oder „newest Wins“
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
29
1. Der Begriff NoSQL
2. Wichtige Konzepte
3. NoSQL Arten
4. Cassandra
5. Zusammenfassung
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
30
4. Cassandra
Überblick
Open-Source Projekt
 Initial von facebook entwickelt


Seit 2010 Apache Top-Level-Projekt

Physikalischer Aufbau an Amazon Dynamo angelehnt

Datenstruktur an Google BigTable angelehnt
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
31
4. Cassandra
Besonderheiten

Existieren Super-Column-Families
 Column-Families in Column-Families, keine Rekursion

Families sortierbar entweder nach Columnname oder Zeitstempel

Automatische Hashwert(um)verteilung je nach Lastverteilung

Replikation kann Rack-aware, Rack-unaware und Datacenter-
aware sein
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
32
5. Zusammenfassung
Relationale DBMS nicht immer einsetzbar
 da teilweise zu überladen
 CP erfüllt, aber AP gefordert
 Grundverständnis über wichtige Konzepte
 Ansatz einiger NoSQL Systeme

17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
33
Ende
Vielen Dank für die Aufmerksamkeit!
Weitere Fragen?
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
34
Literaturverzeichnis
•
[1] Nosql-database.org (1. Mai 2010)
•
Wikipedia NoSQL (6. Mai 2010)
•
Wikipedia Multiversion Concurrency Control (27. Mai 2010)
•
Fay Chang et al.: Bigtable: A Distributed Storage System for Structured Data. In: OSDI2006:
Seventh Symposium on Operating System Design and Implementation, Seattle, WA, November,
2006.
•
Giuseppe DeCandia et al.: Dynamo: Amazon's Highly Available Key-value Store 2007.
•
Avinash Lakshman und Prashant Malik: Cassandra - A Decentralized Structured Storage
System. In: LADIS 2009: The 3rd ACM SIGOPS International Workshop on Large Scale
Distributed Systems and Middleware, New York, NY, USA, 2009. ACM.
•
InfoGrid: Graph Database Tutorial (26. April 2010)
•
Seth Gilbert, Nancy Lynch: Brewer's Conjecture and the Feasibility of Consistent, Available,
Partition-Tolerant Web Services ACM SIGACT News, v.33 Issue 2, 2002.
•
[2] David Vignoni: Nuvola Icon Theme
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
35
2.1 CAP Theorem
Beispiel Systeme
C
A
P
C
A
P
C
A
P
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
36
3.1 Document Stores
Beispiel
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
37
3.2 Graphdatenbank
Beispiel
©2010 Peter Neubauer (http://it-republik.de/jaxenter/artikel/Neo4j-%96-die-High-Performance-Graphendatenbank-2919.html)
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
38
3.3 Key-Value Stores
Dynamo – Hinted Handoff
Ausfall des Knotens X
 Intervallfremde Werte werden auf Knoten y gespeichert (Handoff)


Zusätzlich Verweis auf Knoten X (Hint)

Sobald X wieder verfügbar

Rückgabe der Key-Value-Paare an X
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
39
3.3 Key-Value Stores
Dynamo – Merkle Tree
Dienen der effizienten Synchronisation
 Knoten hält Hashwert über die Kindsknoten


Blätter sind Key-Value-Paare

Synchronisationsablauf:

Vergleich der Wurzelhashwerte

Wenn ungleich: tiefer iterieren bis veränderte Blätter gefunden


Diese sind zu synchronisieren
Ansonsten (Teil-)Bäume synchron
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
40
3.3 Key-Value Stores
Dynamo – Gossip Kommunikation
Kommunikation der Knoten durch Gossip (dt. Tratsch)
 Keine feste Kommunikationsordnung


Jeder Knoten kann mit jeden kommunizieren

Veränderungen propagieren stückweise durch System
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
41
4. Cassandra
Beispiel
Facebook Posteingangssuche
17. Juni 2010
Vortrag NoSQL-Datenbanken
Philipp Heinze
42
Herunterladen