Beim gestrigen Event DB-Programmierung: Oracle 12c für Entwickler der Deutsche ORACLE-Anwendergruppe (DOAG) SIG Development/Tools erfolgte ein Blick über den Tellerrand für Referent und Teilnehmer. Ich durfte über die verschiedenen Cluster Optionen für MySQL sprechen und die Sicht des PHP-Entwicklers andeuten.
Im Bereich verteilte Datenbanken ist MySQL mittlerweile sehr breit aufgestellt. Wer sich als DBA einen ersten Überblick verschaffen möchte, der kann die verschiedene Systeme mittels zweier Fragen grob einordnen (Folie 1-16):
- Können alle Transaktionen auf allen Replikas ausgeführt werden?
- Erfolgt die Konfliktlösung zwischen Transaktionen verschiedener Replikas sofort oder zeitversetzt?
Die Antworten bestimmen die grundsätzlichen Vor- und Nachteile der vier sich ergebenden Kombinationsmöglichkeiten. Es zeigt sich, daß MySQL in mindestens drei Feldern vertreten ist:
- Lazy (wann: asynchron) Primary (wo: Master) Copy
- Lazy (wann: asynchron) Update Anywhere (wo: “Multi-Master”)
- Eager (wann: synchron) Update Anywhere (wo: “Multi-Master”)
Innerhalb dieser ersten Einordnung ist weiterhin nach vollständiger und partieller Replikation zu unterscheiden. Damit weitet sich die Auswahl bei MySQL auf:
- Lazy (wann: asynchron) Primary (wo: Master) Copy
- Vollständig
- Partiell
- Lazy (wann: asynchron) Update Anywhere (wo: “Multi-Master”)
- Eager (wann: synchron) Update Anywhere (wo: “Multi-Master”)
- Vollständig
- Partiell
Wer hätte das von "der kleinen Webdatenbank" gedacht?
Je nach System ergeben prinzipbedingte Vor- und Nachteile. Insbesonders bei der beliebten MySQL Replikation kommen neue Aufgaben auf die Applikation zu (Folien 27 – 30). Der PHP MySQL Treiber versucht viele der Aufgaben zu abstrahieren und zu übernehmen, um die Entwicklung von Applikationen zu vereinfachen.
Im Rahmen eines DOAG SIG Development/Tools Vortrags sind die Details für den Oracle DBA eher unwichtig. Entsprechend lag der Fokus während des Vortrags auf den grundsätzlichen Fragen nach den verfügbaren Systemen und der Frage auf welcher Ebene ein Load Balancer eingesetzt werden sollte (Folien 31-45).
Wer MySQL als Cluster einsetzt, der findet hoffentlich in der Präsentation bei der Darstellung des PHP Treibers (Folien 45-85) eine Checkliste für die wichtigsten Aspekte beim Umgang mit einem beliebigen MySQL Cluster. Das Wort “PHP” sollte nicht abschrecken. Die Herausforderungen und Lösungsansätze sind sprachübergreifend. Und, natürlich führen viele Wege zum Ziel. Wer seit Jahren eine funktionierende Lösung hat, sollte sie weiterverwenden.
85 Folien?! Jede zweite ist eine Kommentierung dessen, was während des Vortrags sichtbar war. So wird der Vortrag auch ohne Referent online lebendig…