Storage-Engine MyRocks

Facebooks Datenbeschleuniger für MySQL-Datenbanken jetzt Open Source

05.09.2016
Von 
Bernhard Haluschak war bis Anfang 2019 Redakteur bei der IDG Business Media GmbH. Der Dipl. Ing. FH der Elektrotechnik / Informationsverarbeitung blickt auf langjährige Erfahrungen im Server-, Storage- und Netzwerk-Umfeld und im Bereich neuer Technologien zurück. Vor seiner Fachredakteurslaufbahn arbeitete er in Entwicklungslabors, in der Qualitätssicherung sowie als Laboringenieur in namhaften Unternehmen.
Facebook stellt mit MyRocks seine schnelle und kompakte Storage-Engine für MySQL auf Basis von RocksDB Key-Value Store unter Open Source. Zwar kann MyRocks bis zu 50 Prozent Speicherplatz in MySQL-Datenbanken gegenüber herkömmlicher Technologie sparen, doch sie besitzt auch einen begrenzten Funktionsumfang, wie unsere Kollegen von der InfoWorld.com berichten.

Facebooks Storage Engine RocksDB Key Value Store ist bereits in vielen Produkten von Drittanbietern zu finden wie etwa im großen Datenverarbeitungs-Framework Apache Flink und MongoDB. Jetzt hat Facebook den Weg von RocksDB (MyRocks-Projekt) für die Implementierung dieses Datenbeschleunigers und als Alternative zu InnoDB für MySQL-Datenbanken freigegeben.

MyRocks ist ein Open-Source-Facebook-Projekt, das sich als Ziel gesetzt hat, die Storage Engine RocksDB Key Value Store für die Beschleunigung von MySQL-Datenbanken weiter zu entwickeln. Primär sollen dabei MySQL- oder kompatible Anwendungen mit Highspeed-Speichersystemen wie Flash-Storage besonders gut zusammenarbeiten.

In einem Blog-Post vom 31-August 2016 diskutierte Facebook Datenbank Ingenieur Yoshinori Matsunobu die Vorteile der MySQL-MyRocks-Paarung. Die Datenbank MySQL ist von den Anwendern und Entwicklern gut verstanden und hoch automatisierbar. Zudem sind die Daten leicht zugänglich, lassen sich gut partitionieren, sichern sowie replizieren. Mit der Implementierung von RocksDB in MySQL kann RockDB von allen diesen Datenbankfunktionalitäten beim Datentransport beziehungsweise Datenaufbereitung auch profitieren.

Nach Facebook Einschätzung hat RocksDB gegenüber der MySQL-Standard-Speicher-Engine InnoDB mehrere funktionelle Vorteile. So verwenden Datenzugriffe in RocksDB insgesamt weniger I/O-Operationen zum Lesen oder zur Aktualisierung von Daten. Daraus resultiert eine längere Schreib-Lebensdauer bei Flash- Speicher. Darüber hinaus können Daten in RocksDB für MySQL einfacher komprimiert, defragmentiert, repliziert und aufgerufen werden.

Die Storage-Engine RocksDB für MySQL stellt Facebook unter Oben Source..
Die Storage-Engine RocksDB für MySQL stellt Facebook unter Oben Source..
Foto: Facebook

Doch bevor die Storage Engine InnoDB in einer MySQL-Installation durch MyRocks ersetzen werden soll, sollten auch die Nachteile bedachte werden. So soll MyRocks keine Unterstützung für fremde Schlüssel sowie Spatial- und Volltext-Indizierung bieten. Da MyRocks zurzeit nur als Fork für MySQL 5.6 existiert, können die angepriesenen Funktionalitäten nicht in allen MySQL-Installationen garantiert werden. Da allerdings die Technologie Open Source ist, könnte die Umsetzung auf verschiedene Systeme leicht erfolgen.

Wann Facebook die oben genannten Funktionen implementiert ist ungewiss. Denn auch Facebook plant nicht, alle seine InnoDB-Instanzen durch MyRocks zu ersetzen. "InnoDB gilt seit langem als die Standard-MySQL-Speicher-Engine und deckt viele verschiedene Anwendungsgebiete ab", sagt Yoshinori Matsunobu Datenbank-Ingenieur bei Facebook, "Es gibt viele kritische Datenbankebenen bei Facebook, deshalb werden wir InnoDB auch weiterhin für die meisten von ihnen nutzen."