Download - ACID vs. BASE — NoSQL erklärt
![Page 2: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/2.jpg)
Not only SQL
![Page 3: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/3.jpg)
SQLStructured Query
Language
![Page 4: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/4.jpg)
Programmiersprache für relationale
Datenbanken
![Page 5: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/5.jpg)
Warum?
![Page 6: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/6.jpg)
Das Internet ist schuld!
![Page 7: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/7.jpg)
1980er: data bank
![Page 8: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/8.jpg)
ACID
![Page 9: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/9.jpg)
• Atomicity — ganz oder gar nicht
• Consistency — gewährleistet Integrität
• Isolation — Kapselung gleichzeitiger T.
• Durability — Persistenz aller Änderungen
![Page 10: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/10.jpg)
»große« Datenbanken
![Page 11: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/11.jpg)
Skalieren vertikal
![Page 12: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/12.jpg)
RAMCPU
Storage
![Page 13: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/13.jpg)
RAMCPU
Storage
![Page 14: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/14.jpg)
RAMCPU
Storage
![Page 15: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/15.jpg)
RAMCPU
Storage
![Page 16: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/16.jpg)
teur
er →
größer →
![Page 17: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/17.jpg)
21. Jh.
![Page 18: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/18.jpg)
Beispiel Facebook
• 30.000 Server
• 25 Terabyte Logdaten täglich
• 300.000.000 Nutzer
• 230 Ingenieure
![Page 19: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/19.jpg)
Das Internet ist schuld.
![Page 20: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/20.jpg)
Horizontal
![Page 21: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/21.jpg)
RAMCPU
Storage
![Page 22: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/22.jpg)
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
RAMCPU
Storage
![Page 23: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/23.jpg)
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
![Page 24: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/24.jpg)
meh
r D
aten
→
mehr Durchsatz & höhere Verfügbarkeit →
vertikaleSkalierung
horizontaleSkalierung
![Page 25: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/25.jpg)
Horizontale Skalierung führt zu verteilten
Systemen.
![Page 26: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/26.jpg)
Kundenkontakt
Arbeit
Speicher
![Page 27: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/27.jpg)
Kontaktstelle 2Kontaktstelle 1 Kontaktstelle 3
Speicher 2 Speicher 3Speicher 1
Arbeiter 2 Arbeiter 3Arbeiter 1
![Page 28: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/28.jpg)
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
![Page 29: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/29.jpg)
Normalzustand: DEFEKT
![Page 30: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/30.jpg)
Verfügbarkeit
![Page 31: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/31.jpg)
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
![Page 32: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/32.jpg)
Sicherheit (ACID)Verfügbarkeitunbegrenztes Wachstum
![Page 33: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/33.jpg)
• 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
![Page 34: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/34.jpg)
CAP-Theorem
![Page 35: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/35.jpg)
Consistency
Partition Tolerance
Availability
![Page 36: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/36.jpg)
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
![Page 37: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/37.jpg)
»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
![Page 38: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/38.jpg)
Partition Tolerance
AvailabilityConsistency
![Page 39: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/39.jpg)
• Basically Available
• Soft-state
• Eventual consistency
BASE
![Page 40: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/40.jpg)
• weiche Konsistenz
• Verfügbarkeit
• best effort
• Nährungen akzeptabel
• einfache Entwicklung
• schneller
BASE• harte Konsistenz
• Isolation
• commit;
• Verfügbarkeit?
• komplexe Entwicklung (Schema)
• sicherer
ACID
![Page 41: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/41.jpg)
»But I think it’s a spectrum«Eric A. Brewer
![Page 42: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/42.jpg)
2009: NoSQL
![Page 43: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/43.jpg)
Definition…
![Page 44: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/44.jpg)
»Gruppe nicht konventioneller Datenbanken«
![Page 45: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/45.jpg)
Willkommen im Zoo!
![Page 46: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/46.jpg)
• CouchDB
• MongoDB
• Redis
• Memcachedb
• Tokyo Cabinet
• Google BigTable
• Amazon Dynamo
• Apache Cassandra
• Project Voldemort
• Mnesia (Erlang)
• Hbase (Apache Hadoop)
• Hypertable
• Twitter Gizzard
• weitere…
![Page 47: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/47.jpg)
Eigenschaften
![Page 48: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/48.jpg)
selten ACID
![Page 49: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/49.jpg)
eingeschränkte Transaktionen
![Page 50: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/50.jpg)
kein »JOIN«
![Page 51: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/51.jpg)
kein SQL
![Page 52: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/52.jpg)
einfach anzusprechen
![Page 53: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/53.jpg)
schemafrei
![Page 54: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/54.jpg)
skaliert horizontal
![Page 55: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/55.jpg)
Replikation
![Page 56: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/56.jpg)
eventual consistency
![Page 57: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/57.jpg)
probabilistic worldview
![Page 58: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/58.jpg)
meh
r D
aten
→
mehr Durchsatz & höhere Verfügbarkeit →
horizontaleSkalierungm. harter
Konsistenz
vertikaleSkalierung
horizontaleSkalierungm. weicherKonsistenz
![Page 59: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/59.jpg)
Techniken inNoSQL-Datenbanken
![Page 60: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/60.jpg)
Distributed Hash Table
• keyspace partitioning
• overlay network
![Page 61: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/61.jpg)
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
![Page 62: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/62.jpg)
Vector Clocks
![Page 63: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/63.jpg)
Bild: Wikipedia
![Page 64: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/64.jpg)
sloppy quorum
• N — Anzahl Replikation
• R — Anzahl Lesezugriffe
• W — Anzahl Schreibzugriffe
![Page 65: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/65.jpg)
hinted handoff
![Page 66: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/66.jpg)
Merkle Trees
Bild: Wikipedia
![Page 67: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/67.jpg)
Gossip
![Page 68: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/68.jpg)
Paxos
![Page 69: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/69.jpg)
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
![Page 70: ACID vs. BASE — NoSQL erklärt](https://reader033.vdocuments.net/reader033/viewer/2022052411/5571f42f49795947648f2384/html5/thumbnails/70.jpg)
• 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.