Immer größere Datenmassen sicher zu speichern ist eine Herausforderung für jede IT-Infrastruktur. Schon mit Gigabit-Ethernet lassen sich aber ... (mehr)

Kahlschlag mit Folgen

Die Standard-Engine für Drizzle ist Innodb. Dies bedeutet jedoch nicht, dass sich Dumps eines klassischen MySQL-Servers mit Innodb-Tabellen problemlos einspielen lassen, da in Drizzle auch viele Feldtypen wie »TINYINT« , »TINYTEXT« und »YEAR« gestrichen wurden. Ein Umstieg auf Drizzle bedeutet also zwangsläufig architektonische Veränderungen am Datenbankdesign.

Während sich der Wechsel von »TINYINT« auf »INT« im besten Fall schon durch Suchen und Ersetzen in einem Dumpfile erledigen lässt, kann das Fehlen des »YEAR« -Felds schon größere Auswirkungen auf bestehende Anwendungen haben. Eine allgemeine Lösung für den Umstieg gibt es nicht.

Auf der anderen Seite bietet Drizzle völlig neue Replikations-Mechanismen. Besonders auffallend ist die Möglichkeit, über die so genannte Rabbit Replication zu No-SQL-Datenbanken wie Voldemort [13] oder Diensten wie Memcached [14] zu replizieren, um so zentral verschiedene Backends automatisiert bespielen zu können. Als moderne und hochperformante nicht-transaktionale Datenbank-Engine arbeitet das Drizzle-Projekt an Blitzdb, das sich als Alternative zu Myisam positionieren soll.

Fazit

Die zögernde Akzeptanz von Patches in der Community-Edition des MySQL-Servers beantwortet die Community durch aktive neue Projekte (Abbildung 1). Bestehende Installationen von MySQL 5.0 lassen sich recht einfach durch den MySQL-5.0-Build von Ourdelta.org ersetzen. Dieser beschleunigt den Server durch einige Performance-Patches und bietet erweiterte Reporting-Funktionen, sodass der Administrator weitere Schritte auf der Basis von Laufzeitstatistiken planen kann. Installationen der Version 5.1 profitieren von einem Update auf das aktuelle Innodb-Plugin von den letzten Optimierungen und Erweiterungen – im Idealfall ohne jedes Kompilieren.

Abbildung 1: Die MySQL-Entwicklungslandschaft ist mittlerweile reich verzweigt. Dieser Artikel gibt eine Orientierungshilfe.

Als effektiver erweisen sich der konsequente Umstieg auf die moderne Mariadb und der Wechsel auf Xtradb, die in Performance-Tests noch besser abschneidet als das Innodb-Plugin. Erfreulich ist, dass auch Mariadb vom Ourdelta.org-Projekt paketiert und durch weitere Patches verbessert wird.

In einem noch sehr frühen Stadium befindet sich das Drizzle-Projekt mit seiner vereinfachten Innodb-Variante. Auch die Maria-Engine stellt in Zukunft eine mögliche schnelle Alternative zum klassischen Gespann Myisam/Innodb dar, sollte derzeit aber nur nach eingehender Prüfung eingesetzt werden. Beide Projekte oder Engines verlangen im Gegensatz zu Innodb-Plugin, Xtradb und den bekannten MySQL-Patches in der Regel architektonische Änderungen am Datenbanksystem und dem darauf zugreifenden Programmcode.

Für Administratoren und Entwickler ergibt sich eine ambivalente Situation: Es ist notwendig geworden, sich intensiv mit alternativen MySQL-Patches, -Engines und -Forks zu beschäftigen und idealerweise mit Benchmarks [15] eine optimale Lösung für das eigene Anforderungsprofil zu finden. Das bedeutet zwar erhöhten Zeitaufwand. Andererseits ist die Installation der Server durch vorpaketierte Software kaum komplizierter als der Rückgriff auf Distributionspakete.

An einer Aufnahme der modernen Forks in Distributions-Repositories wird bereits gearbeitet [16]. Und der Lohn für die Mühen ist im Idealfall ein deutlich schnellerer Datenbankserver, der Hardware- und Entwicklungskosten reduziert.

Infos

  1. Andre Gildemeister, "Performance-Optimierung in MySQL": http://www.linux-magazin.de/Heft-Abo/Ausgaben/2003/03/Abfragen-Beschleuniger
  2. MySQL bei Facebook: https://launchpad.net/mysqlatfacebook
  3. Google-Patches: http://code.google.com/p/google-mysql-tools/wiki/Mysql5Patches
  4. Percona-Patches: http://www.percona.com/docs/wiki/patches:start
  5. MySQL-Performance-Blog: http://www.mysqlperformanceblog.com/
  6. Patches bei Ourdelta.org: http://ourdelta.org/patches
  7. Innodb-Plugin: http://www.innodb.com/products/innodb_plugin/features/
  8. Installation des Innodb-Plugin: http://dev.mysql.com/doc/refman/5.1/en/innodb.html
  9. Xtradb: http://www.percona.com/docs/wiki/percona-xtradb:start
  10. Mariadb: http://askmonty.org/wiki/MariaDB
  11. Benchmarks Innodb vs. Xtradb: http://www.mysqlperformanceblog.com/2010/01/13/innodb-innodb-plugin-vs-xtradb-on-fast-storage/
  12. Drizzle: http://drizzle.org/
  13. Project Voldemort: http://project-voldemort.com
  14. Tim Schürmann, "Verteiltes Caching mit Memcached": ADMIN 02/2009, S.58
  15. Jens-Christoph Brendel, " MySQL-Benchmark hilf Konfiguration optimieren": Linux Magazin 2008/12 und http://www.linux-magazin.de/Heft-Abo/Ausgaben/2008/12/Tiefergelegt
  16. Mariadb in Ubuntu: https://wiki.ubuntu.com/Lucid-MariaDB-Inclusion

Der Autor

Caspar Clemens Mierau berät mit seinem Projekt "Screenage" Rails- und PHP-basierte Portale wie Moviepilot.de, Omdb.org und Artfacts.net. Er arbeitet als freier Autor und sammelt noch Literatur für seine Dissertation über Entwicklungsumgebungen.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Drizzle-Datenbank produktionsreif

Der MySQL-Fork Drizzle steht zum ersten Mal zum produktiven Einsatz zur Verfügung.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2020