ACID vs. BASE — NoSQL erklärt

  • Published on
    19-Jun-2015

  • View
    4.852

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

Transcript

<p>ACID vs. BASE NoSQL erklrtHinnerk Haardt </p> <p>Not only SQL</p> <p>SQL Structured Query Language</p> <p>Programmiersprache fr relationale Datenbanken</p> <p>Warum?</p> <p>Das Internet ist schuld!</p> <p>1980er: data bank</p> <p>ACID</p> <p> Atomicity ganz oder gar nicht Consistency gewhrleistet Integritt Isolation Kapselung gleichzeitiger T. Durability Persistenz aller nderungen</p> <p>groe Datenbanken</p> <p>Skalieren vertikal</p> <p>RAM CPU Storage</p> <p>RAM CPU Storage</p> <p>RAM CPU Storage</p> <p>RAM CPU Storage</p> <p>teurer </p> <p>grer </p> <p>21. Jh.</p> <p>Beispiel Facebook 30.000 Server 25 Terabyte Logdaten tglich 300.000.000 Nutzer 230 Ingenieure</p> <p>Das Internet ist schuld.</p> <p>Horizontal</p> <p>RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>mehr Daten </p> <p>horizontale Skalierung vertikale Skalierung</p> <p>mehr Durchsatz &amp; hhere Verfgbarkeit </p> <p>Horizontale Skalierung fhrt zu verteilten Systemen.</p> <p>Kundenkontakt</p> <p>Arbeit</p> <p>Speicher</p> <p>Kontaktstelle 1</p> <p>Kontaktstelle 2</p> <p>Kontaktstelle 3</p> <p>Arbeiter 1</p> <p>Arbeiter 2</p> <p>Arbeiter 3</p> <p>Speicher 1</p> <p>Speicher 2</p> <p>Speicher 3</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage RAM CPU Storage</p> <p>Normalzustand: DEFEKT</p> <p>Verfgbarkeit</p> <p>AvailabilityKlasse 2 3 4 5 Verfgbarkeit 99% 99,9% 99,99% 99,999 Downtime / Jahr 3 Tage 15 Stunden 8 Stunden 45 Minuten 52 Minuten 5 Minuten</p> <p>Sicherheit (ACID) Verfgbarkeit unbegrenztes Wachstum</p> <p>Fallacies of Distributed Computing the network is reliable latency is zero bandwidth is innite the network is secure</p> <p>topology doesnt change there is one administrator transport cost is zero the network is homogeneous</p> <p>CAP-Theorem</p> <p>Consistency</p> <p>Availability</p> <p>Partition Tolerance</p> <p>Network Partitioning Teilung eines Netzwerkes, z.B. in zwei Hlften, beide getrennterreichbar</p> <p> Lsung A: Eine Hlfte abschalten Konsistenz erhalten</p> <p> Lsung B: Konsistenz aufgeben Verfgbarkeit erhalten</p> <p>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</p> <p>Consistency</p> <p>Availability</p> <p>Partition Tolerance</p> <p>BASE Basically Available Soft-state Eventual consistency</p> <p>BASE weiche Konsistenz Verfgbarkeit best effort Nhrungen akzeptabel einfache Entwicklung schneller</p> <p>ACID harte Konsistenz Isolation commit; Verfgbarkeit? komplexe Entwicklung (Schema) sicherer</p> <p>But I think its a spectrum</p> <p>Eric A. Brewer</p> <p>2009: NoSQL</p> <p>Denition</p> <p>Gruppe nicht konventioneller Datenbanken</p> <p>Willkommen im Zoo!</p> <p> CouchDB MongoDB Redis Memcachedb Tokyo Cabinet Google BigTable Amazon Dynamo</p> <p> Apache Cassandra Project Voldemort Mnesia (Erlang) Hbase (ApacheHadoop)</p> <p> Hypertable Twitter Gizzard weitere</p> <p>Eigenschaften</p> <p>selten ACID</p> <p>eingeschrnkte Transaktionen</p> <p>kein JOIN</p> <p>kein SQL</p> <p>einfach anzusprechen</p> <p>schemafrei</p> <p>skaliert horizontal</p> <p>Replikation</p> <p>eventual consistency</p> <p>probabilistic worldview</p> <p>horizontale Skalierung m. weicher Konsistenz</p> <p>mehr Daten </p> <p>horizontale Skalierung m. harter Konsistenz vertikale Skalierung</p> <p>mehr Durchsatz &amp; hhere Verfgbarkeit </p> <p>Techniken in NoSQL-Datenbanken</p> <p>Distributed Hash Table keyspace partitioning overlay network</p> <p>Consistent Hashing bilde Daten auf Punkte im Ring ab bilde Server auf Punkte im Ring ab Server sind fr Daten rechts von ihnenverantwortlich</p> <p>Vector Clocks</p> <p>Bild:Wikipedia</p> <p>sloppy quorum N Anzahl Replikation R Anzahl Lesezugriffe W Anzahl Schreibzugriffe</p> <p>hinted handoff</p> <p>Merkle Trees</p> <p>Bild:Wikipedia</p> <p>Gossip</p> <p>Paxos</p> <p>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. CoddAmazon's Dynamo</p> <p>Vertical Paxos and primary-backup replication Wikipedia:Vector clock Distributed Programming and Data Consistency Architecting for Latency Internet-Scale Service Efciency Harvest,Yield, and Scalable Tolerant Systems Gossip-based broadcast protocols A brief history of Consensus, 2PC and Transaction Commit.</p>

Recommended

View more >