OpenNebula Conf 2014 | Lightning talk: Cloud in a box - Megam by Varadarajan Narayanan
Cloud Conf - Datenbanken in der Cloud
-
Upload
mattmatt -
Category
Technology
-
view
1.973 -
download
1
description
Transcript of Cloud Conf - Datenbanken in der Cloud
Mathias Meyer, 25.11.2009Peritor GmbH
Datenbanken in der CloudData-Storage jenseits von SQL
Mittwoch, 25. November 2009
NEUE GENERATION von post-relationalen Datenbanken
Wer?
“Chief Cloud Officer” bei Peritor
Ruby-Entwickler
Open-Source-Contributor (http://github.com/mattmatt)
2
Mittwoch, 25. November 2009
PERITOR ist erster Amazon Web Services Solution Provider in Europa
Peritor
3
Cloud-Management und -Deployment made easy
http://scalarium.com
Mittwoch, 25. November 2009
Cloud-Datenbanken?
4
Built for the Web
Skalierbar
Performant
Flexibles Datenschema
Mittwoch, 25. November 2009
WEB bedarf neuer Denkweisen über DatenSTORAGE muss Verteilung und Robustheit bietenVERFÜGBARKEIT ist King
Cloud-Datenbanken?
5
DynamoCouchDBDynomite
Tokyo Tyrant
MongoDB
Riak
Amazon SimpleDB
Redis Memcached
BigTableAmazon S3
Cassandra
Lotus Notes
Excel ;)Neo4j
Project Voldemort HBase
Mittwoch, 25. November 2009
Der Status-Quo
Relationale Datenstrukturen
SQL
Transaktionssicherheit
Locking
6
Mittwoch, 25. November 2009
Das Problem
7
Mittwoch, 25. November 2009
DATENSTRUKTUREN verändern sichSCHEMATA sind nicht fixDATENTYPEN sind nicht immer fixMIGRATIONSZEITEN steigen mit der Menge DatenKOMPLEXE Datenstrukturen lassen sich nur schwer abbilden
Das Problem
8
Mittwoch, 25. November 2009
TRANSAKTIONSSICHERHEIT oftmals unnötigLOCKING bremst Performance, erschwert ReplikationINDEX-UPDATES sind oftmals immediate und verzögern die TransaktionMEHR INDIZES bedeuten mehr Arbeit (Updates, Index-Auswahl bei Query)
http://www.flickr.com/photos/31667878@N03/4113087794
Die Lösung
9
”Simplicity is prerequisite for reliability“— Edsger W. Dijkstra
Mittwoch, 25. November 2009
SIMPLIZITÄT statt KomplexitätDATEN statt Struktur
Die Lösung
key => “value”
10
Mittwoch, 25. November 2009
KEY/VALUE für einfache Datenstrukturen
Dokumente
11
Mittwoch, 25. November 2009
DOKUMENTE statt fixe TabellenstrukturenDOKUMENTE enthalten alle relevanten Daten (self-contained)SCHEMAPFLEGE entfälltDATENMIGRATION nicht
Dokumente
11
Mittwoch, 25. November 2009
DOKUMENTE statt fixe TabellenstrukturenDOKUMENTE enthalten alle relevanten Daten (self-contained)SCHEMAPFLEGE entfälltDATENMIGRATION nicht
Dokumente
11
Mittwoch, 25. November 2009
DOKUMENTE statt fixe TabellenstrukturenDOKUMENTE enthalten alle relevanten Daten (self-contained)SCHEMAPFLEGE entfälltDATENMIGRATION nicht
Dokumente
11
Mittwoch, 25. November 2009
DOKUMENTE statt fixe TabellenstrukturenDOKUMENTE enthalten alle relevanten Daten (self-contained)SCHEMAPFLEGE entfälltDATENMIGRATION nicht
Integrität
12
Mittwoch, 25. November 2009
Atomicity, Consistency, Isolation, DurabilityACID ist King, oder auch nichtACID vs. PerformanceACID ist lokalEVENTUAL CONSISTENCY statt verteilter Transaktionen
http://www.flickr.com/photos/peapea/40955407/
Eventual Consistency
13
Mittwoch, 25. November 2009
UPDATES propagieren irgendwann über alle KnotenEXISTIERT bereits in RDBMS
Append-Only
14
Mittwoch, 25. November 2009
SPEICHERPLATZ ist billigUPDATE der Daten = NEUE RevisionKEIN Locking weil kein Update In-Place
Append-Only
15
Update
Mittwoch, 25. November 2009
Append-Only
16
Update
Mittwoch, 25. November 2009
Skalierbarkeit
17
Mittwoch, 25. November 2009
OPTIMIERT fuer hohe Concurrency (Read > Write)REPLIKATION als Feature nicht als Add-OnSKALIERBARKEIT durch Auto-Sharding und/oder Sharding/Hashing
http://www.flickr.com/photos/calliope/3573471166
Tools
18
Mittwoch, 25. November 2009
Tools
19
DynamoCouchDBDynomite
Tokyo Tyrant
MongoDB
Riak
Amazon SimpleDB
Redis Memcached
BigTableAmazon S3
Cassandra
Lotus Notes
Excel ;)Neo4j
Project Voldemort HBase
Mittwoch, 25. November 2009
Tools
20
DynamoCouchDBDynomite
Tokyo Tyrant
MongoDB
Riak
Amazon SimpleDB
Redis Memcached
BigTableAmazon S3
Cassandra
Lotus Notes
Excel ;)Neo4j
Project Voldemort HBase
Mittwoch, 25. November 2009
Redis
Simpler Key-Value-Store
Speichert Strings, Listen und Sets
Semi-Persistent
21
Mittwoch, 25. November 2009
SIMPEL weil einfach gehaltenATOMARE Operationen auf Strings, Listen und Sets möglichPERSISTENT über Snapshots und/oder Append-LogsDATENSET wird im Speicher gehalten
Redis
22
Mittwoch, 25. November 2009
SPEED ist KingOPERATIONEN in Redis sind auf Speed und Simplizität getrimmtSINGLE ProzessREPLIKATION über Master/Slave
Redis
set foo 4
1000
+OK
23
Mittwoch, 25. November 2009
DATENGRÖßE je Key auf 1GB beschränkt
Redis
set foo 4
1000
+OK
23
Request
Response
Mittwoch, 25. November 2009
DATENGRÖßE je Key auf 1GB beschränkt
Amazon SimpleDB
Database as a Service
Hoch-Skaliert
Always On
HTTP-API
24
Mittwoch, 25. November 2009
VERTEILTE DatenbankABRECHNUNG nach Computing Hours und Traffic
Amazon SimpleDB
25
Mittwoch, 25. November 2009
Amazon SimpleDB
26
Mittwoch, 25. November 2009
NEUE ATTRIBUTE erfordern keine Schema-ÄnderungBASIS aller Schemalosen DatenbankenSTRINGS ist der einzige Datentyp in SimpleDBNUMMERN sollten mit Paddings versehen werdenDATUM muss als String formatiert werden
Amazon SimpleDB
27
MembershipsItem #1
Name: Paul, Address: 234 Performance Rd.
Item #2Name: John, Address: 567 Couch St.
Item #3Name: Frank, Address: 321 Cloud Ave.
Item #4Name: Tom, Address: 123 Scale St.
Mittwoch, 25. November 2009
DOMAINS sind der Spreadsheet
Amazon SimpleDB
27
MembershipsItem #1
Name: Paul, Address: 234 Performance Rd.
Item #2Name: John, Address: 567 Couch St.
Item #3Name: Frank, Address: 321 Cloud Ave.
Item #4Name: Tom, Address: 123 Scale St.
Domain
Mittwoch, 25. November 2009
DOMAINS sind der Spreadsheet
Amazon SimpleDB
28
MembershipsItem #1
Name: Paul, Address: 234 Performance Rd.
Item #2Name: John, Address: 567 Couch St.
Item #3Name: Frank, Address: 321 Cloud Ave.
Item #4Name: Tom, Address: 123 Scale St.
Mittwoch, 25. November 2009
ITEMS sind die Einträge
Amazon SimpleDB
28
MembershipsItem #1
Name: Paul, Address: 234 Performance Rd.
Item #2Name: John, Address: 567 Couch St.
Item #3Name: Frank, Address: 321 Cloud Ave.
Item #4Name: Tom, Address: 123 Scale St.
Item
Mittwoch, 25. November 2009
ITEMS sind die Einträge
Amazon SimpleDB
29
Memberships
Item #2Name: John, Address: 567 Couch St.
Item #3Name: Frank, Address: 321 Cloud Ave.
Item #4Name: Tom, Address: 123 Scale St.
Item #1Name: Paul, Address: 234 Performance Rd.
Mittwoch, 25. November 2009
ATTRIBUTE die EigenschaftenVALUES die Werte der EigenschaftenATTRIBUTE können mehrere Values haben
Amazon SimpleDB
29
Memberships
Item #2Name: John, Address: 567 Couch St.
Item #3Name: Frank, Address: 321 Cloud Ave.
Item #4Name: Tom, Address: 123 Scale St.
Item #1Name: Paul, Address: 234 Performance Rd.
Attribute
Mittwoch, 25. November 2009
ATTRIBUTE die EigenschaftenVALUES die Werte der EigenschaftenATTRIBUTE können mehrere Values haben
Amazon SimpleDB
29
Memberships
Item #2Name: John, Address: 567 Couch St.
Item #3Name: Frank, Address: 321 Cloud Ave.
Item #4Name: Tom, Address: 123 Scale St.
Item #1Name: Paul, Address: 234 Performance Rd.
Attribute Value
Mittwoch, 25. November 2009
ATTRIBUTE die EigenschaftenVALUES die Werte der EigenschaftenATTRIBUTE können mehrere Values haben
Amazon SimpleDB
Wie komme ich an die Daten?
30
Mittwoch, 25. November 2009
Amazon SimpleDB
GetAttributes: ItemName=1
31
Mittwoch, 25. November 2009
Amazon SimpleDB
select * from memberships where Name = ‘Paul’
32
Mittwoch, 25. November 2009
SUPPORT für rudimentäre Queries
Amazon SimpleDB
33
Simplizität durch Restriktionen
Mittwoch, 25. November 2009
SIMPLIZITÄT durch Restriktionen10GB pro Domain10 Mio. Attribute pro Domain1024 Bytes pro Attribute/Value256 Attribute-Value-Pairs pro ItemVENDOR Lock-In (Daten einfach rein, aber schwerer wieder raus)
Skalierung mit Eventual Consistency
34
Amazon SimpleDB
Mittwoch, 25. November 2009
DATENÄNDERUNGEN propagieren nicht sofortMEHRERE Sekunden kann es dauernGUT GEEIGNET für read-later Daten
35
CouchDBrelax
Mittwoch, 25. November 2009
CouchDB
Dokument-orientiert
36
Mittwoch, 25. November 2009
ERLANG als BasisHOHE CONCURRENCY als Philosophie
37
”CouchDB is built of the Web“— Jacob Kaplan-Moss
Mittwoch, 25. November 2009
RESTful HTTP-APIVIELE ELEMENTE von HTTP werden verwendetJSON und UTF-8 für Storage und Transfer
CouchDB
38
{ "_id": "BCCD12CBB", "_rev": "1-‐AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true}
Mittwoch, 25. November 2009
DOKUMENTE in JSONATTRIBUTE mit _ sind reserviert_ID ist der Identifier eines Dokumentes_REV die Revisionsnummer
CouchDB
39
{ "_id": "BCCD12CBB", "_rev": "1-‐AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true}
Mittwoch, 25. November 2009
DOKUMENTE in JSONATTRIBUTE mit _ sind reserviert_ID ist der Identifier eines Dokumentes_REV die Revisionsnummer
CouchDB
40
{ "_id": "BCCD12CBB", "_rev": "1-‐AB764C", "type": "person", "name": "Darth Vader", "age": 63, "headware": ["Helmet", "Sombrero"], "dark_side": true}
Mittwoch, 25. November 2009
DOKUMENTE in JSONATTRIBUTE mit _ sind reserviert_ID ist der Identifier eines Dokumentes_REV die Revisionsnummer
CouchDB - CRUD
Erstellen/Aktualisieren:
PUT /starwars/BCCD12CBB
Lesen:
GET /starwars/BCCD12CBB
Löschen:
DELETE /starwars/BCCD12CBB
41
Mittwoch, 25. November 2009
CouchDB
Wie komme ich an meine Daten?
42
Mittwoch, 25. November 2009
CouchDB
43
Views!
Mittwoch, 25. November 2009
MAP/REDUCE über Views in JavaScript oder auch ErlangB-TREE Indizes für schnellen LookupVIEWS werden erst beim Lesen erstellt bzw. aktualisiert
CouchDB
44
function(doc) { if (doc.headware) { for (var hat in doc.headware) { emit(hat, 1); } }}
Mittwoch, 25. November 2009
MAP Funktion kann beliebige Attribute mit beliebig vielen Werten indizieren
CouchDB
45
function(keys, values, rereduce) { return sum(values);}
Mittwoch, 25. November 2009
REDUCE Funktion aggregiert Ergebnisse aus MAP
CouchDB
46
Mittwoch, 25. November 2009
B-TREES speichern Referenzen für Views und Key-LookupsTREE-Storage ist Append-OnlyNIEMALS Update In-Place
CouchDB
47
Mittwoch, 25. November 2009
STORAGE ist Crash-ProofKONSISTENZ der Datenbank ist durch Append-Only garantiert
CouchDB
48
Mittwoch, 25. November 2009
OFFLINE by Default
CouchDB
49
Mittwoch, 25. November 2009
REPLIKATION ist ein zentrales Feature, kein Add-OnJEDER kann zu jeder Zeit zu jedem replizieren
CouchDB
POST /_replication
50
Mittwoch, 25. November 2009
REPLIKATION ist nichts weiter als ein POST-RequestKONTINUIERLICHE Replikation ist seit Release 0.10.0 möglich
Und?
Daten sind wieder König
51
Mittwoch, 25. November 2009
CONSTRAINTS werden gebrochenWEB benoetigt mehr Flexibilität als RDBMS
Aber!
Kein goldener Hammer
52
Mittwoch, 25. November 2009
RICHTIGES Tool für den richtigen Zweck
53
Mittwoch, 25. November 2009
TOOLS kann man ignorieren
54
Mittwoch, 25. November 2009
ODER AKZEPTIEREN dass kein Tool für alle Zwecke passtZUKUNFT gehört spezialisierten Tools
© Peritor GmbH - Alle Reche Vorbehalten
Peritor GmbHBlücherstr. 22, Hof III Aufgang 610961 Berlin
Tel.: +49 (0)30 69 20 09 84 0Fax: +49 (0)30 69 20 09 84 9
Internet: www.peritor.comE-Mail: [email protected]
Mittwoch, 25. November 2009