BigData Tech Series: MemSQL, die MySQL-kompatible In-Memory-Datenbank

Inhalt

Big-Data-Tech-Series-Teil-4

Was ist MemSQL?

MemSQL ist eine vollständig zu MySQL kompatible In-Memory-Datenbank und kann diese direkt ersetzen. MemSQL wurde von den beiden ehemaligen Facebook-Entwicklern Eric Frenkiel und Nikita Shamgunov entwickelt, um eine schnelle In-Memory-Alternative zu MySQL haben. Was macht MemSQL so besonders?

Beim Schreiben der Daten auf die Festplatte ist MemSQL rund 30-mal schneller als MySQL. Um die hohen Geschwindigkeiten zu erreichen, wandelt MemSQL die SQL-Anfragen in C++-Code um und hält diesen im Speicher vor. Dazu entfernt MemSQL sämtliche Konstanten aus der Query. Die parametrisierte Query wird dann in ein C++-Programm konvertiert und danach in ein Shared-Object kompiliert. Dieses Shared-Object wird fortan für alle Abfragen des gleichen Type verwendet.

Obwohl das Abarbeiten der ersten Query deutlich länger dauert, werden alle weiteren Anfragen sehr viel schneller beantwortet. Damit die Daten bei einem Systemabstürz nicht verloren gehen, werden die Daten nach Abschluss einer Transaktion auf die Festplatte geschrieben. Durch die Kombination von Write-Ahead-Logging und Snapshotting ist MemSQL ACID-kompatibel.

Im Gegensatz zu MySQL ist MemSQL in der Lage, Anfragen verlässlich und ohne große Schwankungen bei der Antwortzeit zu beantworten. MemSQL kann auch als Cluster betrieben werden. Außerdem lassen sich MemSQL und MySQL gleichzeitig betreiben, sodass sich z.B. Archivdaten mit Echtzeitdaten kombinieren lassen.

Unterschiedliche Antwortzeit

Die beiden Screenshots zeigen, wie die Antwortzeit zwischen MySQL und MemSQL differieren kann:

 

Während bei MySQL starke Schwankungen bei den Abfragen erkennbar sind, sieht man bei MemSQL am Anfang eine lange Antwortzeit und danach relativ konstante Antwortzeiten. Der starke Anstieg zu Beginn liegt am erstmaligen Konvertieren der SQL-Query in C++-Code und dem anschließenden Kompilieren in ein Shared-Object (die Tests wurden mit jeweils 1500 SQL-Queries mit MySQL und MemSQL durchgeführt, die analog auf demselben System liefen).

Diese Artikel der „Big Data Tech Series“ könnten Sie auch interessieren: