+ All Categories
Home > Documents > ACID vs. BASE — NoSQL erklärt

ACID vs. BASE — NoSQL erklärt

Date post: 19-Jun-2015
Category:
Upload: hinnerk
View: 4,866 times
Download: 1 times
Share this document with a friend
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?
70
ACID vs. BASE NoSQL erklärt Hinnerk Haardt <[email protected]>
Transcript
Page 1: ACID vs. BASE — NoSQL erklärt

ACID vs. BASENoSQL erklärt

Hinnerk Haardt <[email protected]>

Page 2: ACID vs. BASE — NoSQL erklärt

Not only SQL

Page 3: ACID vs. BASE — NoSQL erklärt

SQLStructured Query

Language

Page 4: ACID vs. BASE — NoSQL erklärt

Programmiersprache für relationale

Datenbanken

Page 5: ACID vs. BASE — NoSQL erklärt

Warum?

Page 6: ACID vs. BASE — NoSQL erklärt

Das Internet ist schuld!

Page 7: ACID vs. BASE — NoSQL erklärt

1980er: data bank

Page 8: ACID vs. BASE — NoSQL erklärt

ACID

Page 9: ACID vs. BASE — NoSQL erklärt

• 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

»große« Datenbanken

Page 11: ACID vs. BASE — NoSQL erklärt

Skalieren vertikal

Page 12: ACID vs. BASE — NoSQL erklärt

RAMCPU

Storage

Page 13: ACID vs. BASE — NoSQL erklärt

RAMCPU

Storage

Page 14: ACID vs. BASE — NoSQL erklärt

RAMCPU

Storage

Page 15: ACID vs. BASE — NoSQL erklärt

RAMCPU

Storage

Page 16: ACID vs. BASE — NoSQL erklärt

teur

er →

größer →

Page 17: ACID vs. BASE — NoSQL erklärt

21. Jh.

Page 18: ACID vs. BASE — NoSQL erklärt

Beispiel Facebook

• 30.000 Server

• 25 Terabyte Logdaten täglich

• 300.000.000 Nutzer

• 230 Ingenieure

Page 19: ACID vs. BASE — NoSQL erklärt

Das Internet ist schuld.

Page 20: ACID vs. BASE — NoSQL erklärt

Horizontal

Page 21: ACID vs. BASE — NoSQL erklärt

RAMCPU

Storage

Page 22: ACID vs. BASE — NoSQL erklärt

RAMCPU

Storage

RAMCPU

Storage

RAMCPU

Storage

RAMCPU

Storage

Page 23: ACID vs. BASE — NoSQL erklärt

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

meh

r D

aten

mehr Durchsatz & höhere Verfügbarkeit →

vertikaleSkalierung

horizontaleSkalierung

Page 25: ACID vs. BASE — NoSQL erklärt

Horizontale Skalierung führt zu verteilten

Systemen.

Page 26: ACID vs. BASE — NoSQL erklärt

Kundenkontakt

Arbeit

Speicher

Page 27: ACID vs. BASE — NoSQL erklärt

Kontaktstelle 2Kontaktstelle 1 Kontaktstelle 3

Speicher 2 Speicher 3Speicher 1

Arbeiter 2 Arbeiter 3Arbeiter 1

Page 28: ACID vs. BASE — NoSQL erklärt

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

Normalzustand: DEFEKT

Page 30: ACID vs. BASE — NoSQL erklärt

Verfügbarkeit

Page 31: ACID vs. BASE — NoSQL erklärt

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

Sicherheit (ACID)Verfügbarkeitunbegrenztes Wachstum

Page 33: ACID vs. BASE — NoSQL erklärt

• 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

CAP-Theorem

Page 35: ACID vs. BASE — NoSQL erklärt

Consistency

Partition Tolerance

Availability

Page 36: ACID vs. BASE — NoSQL erklärt

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

»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

Partition Tolerance

AvailabilityConsistency

Page 39: ACID vs. BASE — NoSQL erklärt

• Basically Available

• Soft-state

• Eventual consistency

BASE

Page 40: ACID vs. BASE — NoSQL erklärt

• 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

»But I think it’s a spectrum«Eric A. Brewer

Page 42: ACID vs. BASE — NoSQL erklärt

2009: NoSQL

Page 43: ACID vs. BASE — NoSQL erklärt

Definition…

Page 44: ACID vs. BASE — NoSQL erklärt

»Gruppe nicht konventioneller Datenbanken«

Page 45: ACID vs. BASE — NoSQL erklärt

Willkommen im Zoo!

Page 46: ACID vs. BASE — NoSQL erklärt

• 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

Eigenschaften

Page 48: ACID vs. BASE — NoSQL erklärt

selten ACID

Page 49: ACID vs. BASE — NoSQL erklärt

eingeschränkte Transaktionen

Page 50: ACID vs. BASE — NoSQL erklärt

kein »JOIN«

Page 51: ACID vs. BASE — NoSQL erklärt

kein SQL

Page 52: ACID vs. BASE — NoSQL erklärt

einfach anzusprechen

Page 53: ACID vs. BASE — NoSQL erklärt

schemafrei

Page 54: ACID vs. BASE — NoSQL erklärt

skaliert horizontal

Page 55: ACID vs. BASE — NoSQL erklärt

Replikation

Page 56: ACID vs. BASE — NoSQL erklärt

eventual consistency

Page 57: ACID vs. BASE — NoSQL erklärt

probabilistic worldview

Page 58: ACID vs. BASE — NoSQL erklärt

meh

r D

aten

mehr Durchsatz & höhere Verfügbarkeit →

horizontaleSkalierungm. harter

Konsistenz

vertikaleSkalierung

horizontaleSkalierungm. weicherKonsistenz

Page 59: ACID vs. BASE — NoSQL erklärt

Techniken inNoSQL-Datenbanken

Page 60: ACID vs. BASE — NoSQL erklärt

Distributed Hash Table

• keyspace partitioning

• overlay network

Page 61: ACID vs. BASE — NoSQL erklärt

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

Vector Clocks

Page 64: ACID vs. BASE — NoSQL erklärt

sloppy quorum

• N — Anzahl Replikation

• R — Anzahl Lesezugriffe

• W — Anzahl Schreibzugriffe

Page 65: ACID vs. BASE — NoSQL erklärt

hinted handoff

Page 67: ACID vs. BASE — NoSQL erklärt

Gossip

Page 68: ACID vs. BASE — NoSQL erklärt

Paxos

Page 69: ACID vs. BASE — NoSQL erklärt

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

• 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.


Recommended