52
MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009

MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

MySQL in großen UmgebungenKristian Köhntopp, booking.com

Mittwoch, 29. April 2009

Page 2: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Was nicht kommt

• Dieser Vortrag geht davon aus, daß die Erstellung einer my.cnf ein gelöstes Problem ist.

Mittwoch, 29. April 2009

Page 3: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Was nicht kommt

• Der Vortrag geht davon aus, daß EXPLAIN, Indices usw. bekannt sind.

Mittwoch, 29. April 2009

Page 4: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Worum geht es dann?

• Manche Probleme sind nur durch brutale Gewalt und ein Datacenter voll Kisten zu zu lösen.

• Das hat Auswirkungen auf die Architektur der Lösung.

Mittwoch, 29. April 2009

Page 5: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Was macht Booking?

Booking verkauft Hotelbuchungen an Reisende auf Kommission.

Nur das.

Mittwoch, 29. April 2009

Page 6: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Daten bei Booking.

• Hotel Basisdaten,

• Broschüren,

• Bewertungen & Scores,

• Verfügbarkeit nach Raum, Preisplan and Datum.

• Ein paar fette Data Warehouses.

Mittwoch, 29. April 2009

Page 7: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Booking Tech

• Frontends mit Linux, Apache, mod_perl,

• Diverse Funktionsgruppen.

• Datenbanken: MySQL,

• Diverse Funktionsgruppen.

• Eine Menge Infrastrukturserver.

Mittwoch, 29. April 2009

Page 8: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Booking Größe

• FE zu DB ratio: ca. 4-6 to 1.

• Ca. 160 slaves, ein Dutzend Schemata.

• Ca. 1000 Rechner.

• Schnell wachsend.

Mittwoch, 29. April 2009

Page 9: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Booking 2006

• 32 Bit Host.

• MySQL 4.0.

• RAID-1.

• Ca. 45G Daten.

• Ein Dutzend Slaves.

• Ein Schema für alles.

Mittwoch, 29. April 2009

Page 10: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Architektur: Synchron-Lokal

• Alle Abhängigkeiten vollständig in Integrity-Constraints abbildbar.

• Call-Wait, Single Thread, 2-Tier.

Mittwoch, 29. April 2009

Page 11: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Call-Wait, Single-Thread

Apachemod_perl MySQL

Mittwoch, 29. April 2009

Page 12: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Synchron-Lokal böse?

• Leicht zu debuggen.

• Kostengünstig, kurze Time-to-market:

• Featureentwickler können ungehindert arbeiten.

Mittwoch, 29. April 2009

Page 13: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Synchron-Lokal böse?

• Vertikal skalierbar,

• Skalierungskosten in der Datenbank.

‣ Absolute Wachtumslimits.

‣ Inakzeptabel!

Mittwoch, 29. April 2009

Page 14: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Kein DWH

• Auch außerhalb von Booking oft anzutreffen:

• Kein ETL,

• operative Daten mit BI/DSS vermischt.

Mittwoch, 29. April 2009

Page 15: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

ETL & DWH

• Bei gleicher Anzahl von Artikeln, Kunden und Verkäufen, ist die Schemagröße über die Zeit stabil?

• Existieren Tabellen mit Time im PK oder Tabellen mit Partition by Time?

Mittwoch, 29. April 2009

Page 16: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Beispiel MEM

• Wir monitoren 160 Hosts mit statistischen Daten.

• Wir monitoren das SQL von ca. 20 Hosts.

• 1.2G Statistik + 5G SQL pro Tag.

• Das heißt, wir löschen 6.2G Dreck pro Tag.

Mittwoch, 29. April 2009

Page 17: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Beispiel MEM• Voll normalisierter KV Storage (6NF)

• Bestandsdaten und Zeitdaten vermengt.

• OLTP (offene Alerts) und DWH (Meßdaten) vermengt.

• Scheitert am Expire.

• Löschung mit externem Script, Indexqualität im Eimer.

Mittwoch, 29. April 2009

Page 18: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Beispiel MEM

• Migration in anderes Schema:

• 5.1 + Partitions (Eat Your Own Dogfood).

• Kein DELETE, verwende DROP TABLE.

• Nicht alle Daten sind gleich.

• Näher an 3NF, ORM, etwa ‘Class InnoDB’ ➔ bessere Locality

Mittwoch, 29. April 2009

Page 19: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Booking 2008• 64 Bit Host, speichergesättigt.

• MySQL 5.0.

• DAS: RAID-10, Netapp.

• HA: Heartbeat.

• Multiple Schemata funktional partitioniert (50G - 1000G), nach Schema: 2-60 Slaves

‣ Synchron-Verteilt.

Mittwoch, 29. April 2009

Page 20: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Verfügbarkeit

• Partition by Functionality

• HA Anforderungen differenzieren:

• Redundanz auf Master

• Redundanz auf Slaves?

• Recoveryzeiten?

• OLTP vs. Service-DWH vs. DSS

Mittwoch, 29. April 2009

Page 21: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Verfügbarkeit

• Basisverfügbarkeit:

• Verkauf bei toten Backoffice aufrecht erhalten?

• Lose Kopplung.

• Reserven berechnen.

• Negative SLA machen.

Mittwoch, 29. April 2009

Page 22: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Master HA• DAS: RAID-10 local, DRBD zwischen

Master und Standby Master.

• NetApp: multipathd.

• Failover: heartbeat oder manuell.

• LVM, XFS:

• mylvmbackup.

• Clone Source: Backup Slave.

Mittwoch, 29. April 2009

Page 23: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

HA

• HA Masters.

• Backup Slave.

• Worker Slaves:

• Slaves mit DAS noch RAID-10, im Grunde unnötig.

Mittwoch, 29. April 2009

Page 24: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Storage Performance

• NetApp Performance:

• Hohe Latenz, hoher Durchsatz.

• Auf den meisten DBs schneller als DAS.

• Gegenbeispiel visitstats:

• Großes DWH mit MyISAM, große Aggregationen.

Mittwoch, 29. April 2009

Page 25: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Architektur: Verteilt-Lokal

• Datenbankzugriff gekapselt,

• Constraints über Instanzgrenzen validiert,

• Datenbankschema größer als eine Instanz.

• 2-Tier Call-Wait, single threaded.

• ETL + korrektes DWH.

Mittwoch, 29. April 2009

Page 26: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Integrität• Schema-beschreibende Tabellen:

• Domain Constraints, Foreign Keys, State Transitions über Instanzgrenzen.

• Zugriffe in Class DBI/DBIx gekapselt:

• Validierung inkrementell beim Zugriff.

• Validierung global durch Cronjob.

• Validierung abschaltbar.

Mittwoch, 29. April 2009

Page 27: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Joins

• Beispiel: bp/av Split.

• bp hat Katalog, Raumbeschreibungen, Policies und Reviews.

• av hat Verfügbarkeitsdaten (Räume, Daten, Preise).

• Hotelsuche:

• av/bp Joins über Instanzgrenzen.

Mittwoch, 29. April 2009

Page 28: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Joins• Situation wie bei MySQL Cluster:

• Join von zwei Tabellen auf verschiedenen Nodes.

• Wünschenswert: Hash-Join.

• Scan T1, Hash of Matches bauen.

• Scan T2, für jeden Match Hashlookup,

• oder anders herum.

• Limit: Intermediate Hash < Memory.Mittwoch, 29. April 2009

Page 29: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Joins

• Angewendet auf av/bp:

• Kapselung von Zugriffen in Klassen, die Application Side Hash Joins durchführen.

• Auf der Datenbank:

• SELECT … WHERE id IN (…)

• IN-List < max_allowed_packet (16M)

Mittwoch, 29. April 2009

Page 30: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Konsequenz?

• Speichergesättigt.

• Deformiertes SQL: PK-Lookups.

• Queries ausprogrammiert.

• Constraints ausprogrammiert.

• Wieso dann noch SQL?

• CouchDB? Andere K/V Storages?

Mittwoch, 29. April 2009

Page 31: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Konsequenz?

• TXN?

• Concurrency?

• Reporting & Ad-Hoc Queries?

‣ Profil von MySQL 4.1 erfüllbar.

‣ Drizzle.

Mittwoch, 29. April 2009

Page 32: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Drizzle: MySQL&Clouds

• MySQL 5.x Fork:

• minus 2/3 der Codebasis,

• plus APIs für Plugins für die fehlende Funktionalität.

• Experimentell & Instabil.

• Nicht rückwärtskompatibel.

Mittwoch, 29. April 2009

Page 33: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Kapazitätsplanung

• Last- und Wachstumskurven über das Jahr kalibrieren,

• projezieren.

• Continuous Integration auch mit Lasttests.

• Schwer zu warten.

Mittwoch, 29. April 2009

Page 34: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Infrastrukturentwicklung

• Wie nennt man das, wenn Sysadmins manuell auf Kisten rumkriechen um Dinge zu fixen?

• Wie nennt man das, wenn Sysadmins Installations- und Monitoringscripte schreiben?

Mittwoch, 29. April 2009

Page 35: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Infrastrukturentwicklung

• Ziel von ISE ist Aufrechterhaltung bestehender Fertigkeiten und Flexibilität angesichts wachsender Last/Maschinenzahl.

Mittwoch, 29. April 2009

Page 36: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Infrastrukturentwicklung

• ISE unterscheidet sich von FE

• Keine Halbfertigprodukte:

• Payoff nur bei NULL manuellen Eingriffen, dann jedoch komplett.

• Teletubbies vs. militärisch geführt.

Mittwoch, 29. April 2009

Page 37: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Infrastrukturentwicklung

• Mantra: Du kannst Dinge nur drei Mal tun.

• Zeige, daß es geht (Machbarkeit).

• Zeige, daß es kein Zufall war (Reproduzierbarkeit).

• Automatisiere oder lehre es (Automation).

Mittwoch, 29. April 2009

Page 38: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Infrastrukturentwicklung

• Provisioning:

• Kickstart/Jumpstart & cfengine/puppet/Chef.

• Visibility:

• Nagios, Cacti, MEM.

• Process:

• Ticketing, Bugtracking.

• Downgrading operations:

• Web Interfaces.Mittwoch, 29. April 2009

Page 39: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Booking 2010Wieder speichergesättigt

Lose gekoppelt

256GSSD

Shards

Queue

EstimateCache

Mittwoch, 29. April 2009

Page 40: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Speichersättigung

• Speichersättigung durch:

• Extreme RAM-Größen.

• Partitionierung nach Werten.

• Schema Zielgröße:

• <128G pro Shard.

Mittwoch, 29. April 2009

Page 41: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Disk Seeks

• Warum Speichersättigung?

• Disk Seek ~ 5ms

• RAM Access ~ 5ns

‣ 1:1 000 000 (gelogen!)

• 2. Lösung: Keine Seeks mehr!

‣ SSD!

Mittwoch, 29. April 2009

Page 42: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

SSD• SAN: Latenz.

• Wann ist DAS schneller als SAN?

• Latenzanteil an Transaktionszeit?

• SSD = RAM at a distance.

• RAM/Flash am lokalen Bus.

• Flash mit HDD Interface.

• RAM/Flash am SAN.Mittwoch, 29. April 2009

Page 43: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

SSD• Datenbank-Schreiblast:

• Bei Speichersättigung: Random-Writes, Linear read im Warmup.

• Bei Disk-I/O: Random-Writes, Random-Reads, ca. 1:2 bis 1:20.

• SSD um so besser, je mehr Reads.

• Intel X25-M/E derzeit die einzigen schreibfesten SSD

Mittwoch, 29. April 2009

Page 44: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

256G

• Bekannte Probleme:

• innodb_max_dirty_pct.

• Recovery mit großen innodb_buffer_pool_size.

• Cache preheating nach Restart:

• autostart.sql + SELECT COUNT(*).

Mittwoch, 29. April 2009

Page 45: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Shards• Funktional partitioniert:

• Schema größer als eine Instanz.

• Nach Werten partitioniert (Sharding):

• Tabelle größer als eine Instanz.

• Parallelisierungspotential

• Ganz schlecht in der API unterstützt.

Mittwoch, 29. April 2009

Page 46: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Shards

• Migration nach Sharding:

• Mapping von Werten auf Instanzen.

• Map/Reduce für Resultsets.

• Wo?

• In der Anwendung.

• Im MySQL Proxy.

Mittwoch, 29. April 2009

Page 47: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Asynchron-Verteilt

• Asynchron-Verteilt:

• Anteilige Kosten von Latenz steigen.

• Latenz steigt mit Distanz (c konstant).

• Latenzanteil steigt mit Parallelisierung.

• Ausfallwahrscheinlichkeiten steigen.

• Transaktionen vs. Netsplits.

Mittwoch, 29. April 2009

Page 48: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

CAP Theorem• Consistency:

• The client perceives that a set of operations has occurred all at once.

• Availability

• Every operation must terminate in an intended response.

• Partition tolerance.

• Operations will complete, even if individual components are unavailable.

• Choose Any Two! (P mandatory)

Mittwoch, 29. April 2009

Page 49: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

ACID

• Choose Consistency.

• 2PC und was danach kommt stoppt angesichts von Netzwerkpartitionen.

Mittwoch, 29. April 2009

Page 50: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

BASE

• Basically Available, Soft state, Eventually consistent

• Choose Availability, vorübergehend inkonsistent.

• Writes in Warteschlange, Writes wiederholbar formulieren.

Mittwoch, 29. April 2009

Page 51: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Folgerung für Uniabgänger

In asynchron-verteilten Umgebungen mußt Du gegen jede einzelne Regel Deiner Datenbankvorlesung verstoßen.

Mittwoch, 29. April 2009

Page 52: MySQL in großen Umgebungenblog.koehntopp.de/uploads/large_mysql.pdf · MySQL in großen Umgebungen Kristian Köhntopp, booking.com Mittwoch, 29. April 2009. Was nicht kommt • Dieser

Mittwoch, 29. April 2009