Upload
hinnerk
View
4.866
Download
1
Embed Size (px)
DESCRIPTION
Unter dem Begriff NoSQL sammelt sich eine starke Konkurrenz zu Datenbanken wie MySQL, Oracle oder PostgreSQL. Systeme wie Cassandra, MongoDB und CouchDB haben deutlich andere Eigenschaften als konventionelle relationale Datenbankmanagementsysteme.Der Vortrag diskutiert unter anderem folgende Fragen:Warum wird ACID durch BASE ersetzt und was ist das CAP-Theorem?Warum arbeiten die meisten NoSQL-Datenbanken schemafrei?Was ist eventual consistency?
Citation preview
ACID vs. BASENoSQL erklärt
Hinnerk Haardt <[email protected]>
Not only SQL
SQLStructured Query
Language
Programmiersprache für relationale
Datenbanken
Warum?
Das Internet ist schuld!
1980er: data bank
ACID
• Atomicity — ganz oder gar nicht
• Consistency — gewährleistet Integrität
• Isolation — Kapselung gleichzeitiger T.
• Durability — Persistenz aller Änderungen
»große« Datenbanken
Skalieren vertikal
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
teur
er →
größer →
21. Jh.
Beispiel Facebook
• 30.000 Server
• 25 Terabyte Logdaten täglich
• 300.000.000 Nutzer
• 230 Ingenieure
Das Internet ist schuld.
Horizontal
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
meh
r D
aten
→
mehr Durchsatz & höhere Verfügbarkeit →
vertikaleSkalierung
horizontaleSkalierung
Horizontale Skalierung führt zu verteilten
Systemen.
Kundenkontakt
Arbeit
Speicher
Kontaktstelle 2Kontaktstelle 1 Kontaktstelle 3
Speicher 2 Speicher 3Speicher 1
Arbeiter 2 Arbeiter 3Arbeiter 1
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
Normalzustand: DEFEKT
Verfügbarkeit
Availability
Klasse Verfügbarkeit Downtime / Jahr
2 99% 3 Tage 15 Stunden
3 99,9% 8 Stunden 45 Minuten
4 99,99% 52 Minuten
5 99,999 5 Minuten
Sicherheit (ACID)Verfügbarkeitunbegrenztes Wachstum
• the network is reliable
• latency is zero
• bandwidth is infinite
• the network is secure
• topology doesn’t change
• there is one administrator
• transport cost is zero
• the network is homogeneous
Fallacies of Distributed Computing
CAP-Theorem
Consistency
Partition Tolerance
Availability
Network Partitioning
• Teilung eines Netzwerkes,
• z.B. in zwei Hälften, beide getrennt erreichbar
• Lösung A: Eine Hälfte abschalten — Konsistenz erhalten
• Lösung B: Konsistenz aufgeben — Verfügbarkeit erhalten
»in larger distributed-scale systems, network partitions are a given; therefore, consistency and availability cannot be achieved at the same time«
Werner Vogels, Amazon.com
Partition Tolerance
AvailabilityConsistency
• Basically Available
• Soft-state
• Eventual consistency
BASE
• weiche Konsistenz
• Verfügbarkeit
• best effort
• Nährungen akzeptabel
• einfache Entwicklung
• schneller
BASE• harte Konsistenz
• Isolation
• commit;
• Verfügbarkeit?
• komplexe Entwicklung (Schema)
• sicherer
ACID
»But I think it’s a spectrum«Eric A. Brewer
2009: NoSQL
Definition…
»Gruppe nicht konventioneller Datenbanken«
Willkommen im Zoo!
• CouchDB
• MongoDB
• Redis
• Memcachedb
• Tokyo Cabinet
• Google BigTable
• Amazon Dynamo
• Apache Cassandra
• Project Voldemort
• Mnesia (Erlang)
• Hbase (Apache Hadoop)
• Hypertable
• Twitter Gizzard
• weitere…
Eigenschaften
selten ACID
eingeschränkte Transaktionen
kein »JOIN«
kein SQL
einfach anzusprechen
schemafrei
skaliert horizontal
Replikation
eventual consistency
probabilistic worldview
meh
r D
aten
→
mehr Durchsatz & höhere Verfügbarkeit →
horizontaleSkalierungm. harter
Konsistenz
vertikaleSkalierung
horizontaleSkalierungm. weicherKonsistenz
Techniken inNoSQL-Datenbanken
Distributed Hash Table
• keyspace partitioning
• overlay network
Consistent Hashing
• bilde Daten auf Punkte im Ring ab
• bilde Server auf Punkte im Ring ab
• Server sind für Daten rechts von ihnen verantwortlich
Vector Clocks
Bild: Wikipedia
sloppy quorum
• N — Anzahl Replikation
• R — Anzahl Lesezugriffe
• W — Anzahl Schreibzugriffe
hinted handoff
Merkle Trees
Bild: Wikipedia
Gossip
Paxos
Referenzen• Bigtable: A Distributed Storage System for
Structured Data
• Eventually Consistent - Revisited
• Keynote address to the PODC conference in 2000 by Eric Brewer
• Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services
• A relational model of data for large shared data banks, E. F. Codd
• Amazon's Dynamo
• Vertical Paxos and primary-backup replication
• Wikipedia: Vector clock
• Distributed Programming and Data Consistency
• Architecting for Latency
• Internet-Scale Service Efficiency
• Harvest, Yield, and Scalable Tolerant Systems
• Gossip-based broadcast protocols
• A brief history of Consensus, 2PC and Transaction Commit.