In-Memory-Datenbanken

Beim Datenbank-Tuning kommt es nicht nur auf In-Memory an

25.01.2016 von Axel Angeli
SAP hat mit HANA für viel Wirbel rund um "In-Memory-Datenbanken" gesorgt. Doch die Leistung einer Datenbank lässt sich nicht allein am Faktor In-Memory festmachen. Für eine gute Performancxe müssen viele andere Faktoren in die Gesamtbetrachtung der Architektur mit einbezogen werden.

Auf den ersten Blick klingt es durchaus einleuchtend, dass man Datenbanken in den Hauptspeicher lädt, um damit eine Beschleunigung der Verarbeitung zu erreichen. Immerhin funktioniert das Auslesen einer Festplatte deutlich langsamer als der Zugriff auf einen Hauptspeicher. Das wissen wir schon seit den 1980ger Jahren, als man zur Beschleunigung des nun wirklich langsamen Zugriffs auf Floppy-Disks die RAM-Disk erfand, um einfach eine Kopie der Floppy im Hauptspeicher anzulegen, um dann dort "In-memory" weiterzuarbeiten. Genau dieses Konzept hatte SAP verfolgt, als man dem rechenaufwändigen, auf SAP BW basierenden Produktionsplanungs-Server "APO" einen "Live-Cache" zur Seite stellte - der Vater von HANA.

In Memory ist nicht neu

Doch HANA ist keineswegs ein neuer Wegbereiter. Die Konkurrenz bei In-Memory ist groß. Nahezu alle bekannten relationalen Datenbank-Managementsysteme (RDBMS) bieten In-Memory in der einen oder anderen Form an. IBM integriert ähnliche Features schon lange in DB/2 und vermarktet diese nun gezielt als Antwort auf HANA unter dem Begriff BLU. Oracle und Microsoft mit SQL offerieren ebenso In-Memory-Optionen. Auch die freien Datenbanken wie MARIA/DB alias MySQL erlauben schon lange In-Memory: Dort wird einfach die Standard Storage-Engine "INNODB" durch die Storage-Engine "MEMORY" (vormals: "HEAP") ausgetauscht. Die Entwickler betonen, dass die "CLUSTER" Storage-Engine eine vergleichbare Performance erziele, dabei aber die Persistenz, also das Speichern der Daten, erlaube.

SAP S/4HANA Launch
SAP S/4HANA im Detail
Bill McDermott, CEO der SAP, eröffnete die Präsentation von SAP S/4HANA.
SAP S/4HANA im Detail
SAP S/4HANA kann mit zahlreichen neuen Features glänzen.
SAP S/4HANA im Detail
Die Neuerungen der SAP Business Suite 4 SAP HANA in der Public Cloud Edition im Detail.
SAP S/4HANA im Detail
Die Managed Cloud Edition der SAP Business Suite 4 SAP HANA wurde um diese Funktionen erweitert.
SAP S/4HANA im Detail
Die Neuerungen der On Premise Edition von SAP Business Suite 4 SAP HANA.
SAP S/4HANA im Detail
S/4HANA punktet mit seinem simplen und reduzierten Datenaufbau.
SAP S/4HANA im Detail
Die Entwickler von SAP HANA konnten in jeder Version den Database Footprint deutlich reduzieren.
SAP S/4HANA im Detail
S/4HANA wurde gehörig entrümpelt. Durch die reduzierte Komplexität hat die aktuelle SAP-HANA-Version im Vergleich zur Vorgängerversion enorm an Performance zugelegt.
SAP S/4HANA im Detail
Bernd Leukert, Vorstand für Produkte und Innovation, demonstrierte, wie SAP S/4HANA in der Praxis funktioniert.
SAP S/4HANA im Detail
SAP S/4HANA im Praxiseinsatz.
SAP S/4HANA im Detail
SAP S/4HANA meldet einen Pumpendefekt und startet entsprechende Prozesse, um diese Störung schnellstmöglich zu beheben.
SAP S/4HANA im Detail
Auch mit mobilen Geräten kann SAP S/4 HANA umgehen.
SAP S/4HANA im Detail
Bei Bedarf kann der IT-Verantwortlich SAP S/4 HANA auch vom Armgelenk aus steuern.

Andere Anbieter verfolgen indes andere Strategien. Beispielsweise verweigert sich PostgreSQL diesem Trend und verweist darauf, dass In-Memory im Grunde kein Feature, sondern im Grunde ein Defekt im eigentlichen Wortsinne sei - nämlich eine Datenbank, die nicht speichern kann. Erwähnen sollte man an dieser Stelle auch Interbase Caché, MongoDB oder Couchbase, die konsequent den Ansatz einer operationalen strukturfreien Datenbank verfolgen. Doch es gibt mittlerweile so viele Anbieter in diesem Umfeld, dass man leicht den einen oder anderen Mitspieler vergessen kann.

Datenbanktechnologie ist selten die Performancebremse

Es wäre allerdings kurzsichtig, nur auf die Technologie der Datenbank selbst zu sehen. Ein Benchmark zwischen In-Memory versus traditionellen Datenbanken ist in Wirklichkeit schwierig. Nicht erst seit VW wissen wir, dass man im Labor gut messen und die Ergebnisse auch intelligent steuern kann. Testen wir zum Beispiel eine Datenbank mit sehr vielen Mikrozugriffen mit Ergebnissen von wenigen Bytes, zum Beispiel das Abfragen aller in einem Monat erzeugten Auftragsnummern, dann gewinnt In-Memory leicht. Bei Massenzugriffen, zum Beispiel dem Auslesen aller Buchungsbelege einer kompletten Woche, ist jedoch eine Disk kaum langsamer, denn der Disk-Zugriff zum Lesen eines ganzen Datenblocks dauert kaum länger als bei einem einzelnen Datensatz.

Einflussfaktoren für einen Benchmark

Tatsächlich ist der Gewinn an Performance durch eine In-Memory-Datenbank deutlich geringer als man es zunächst erwartet. Denn der Datenzugriff auf die Festplatte durch das DBMS ist nur ein Faktor, der das System ausbremst. Folgende Faktoren spielen auch eine Rolle beim tatsächlichen Durchsatz einer In-Memory Datenbank:

Diese Liste erhebt keinen Anspruch auf Vollständigkeit, denn es gibt noch viele weitere potentielle Stellschrauben. Letztlich geht es nicht nur um die Optimierung einzelner Komponenten, sondern die gesamten Verarbeitungs- und Antwortzeiten über alle Komponenten hinweg. Folgende Details gilt es dabei zu beachten:

Auf das Zusammenspiel kommt es an

Am Beispiel In-Memory sehen wir, dass es nicht darum geht, wer die beste individuelle Lösung hat, sondern wie diese Lösung mit den anderen Komponenten einer komplexen und sich unvorhersehbar ändernden Landschaft zusammenspielt. Und was HANA betrifft, werden wir in einem anderen Artikel sehen, dass SAPs In-Memory-System durchaus seinen Platz in diesem Spiel hat: allerdings nicht als In-Memory-Datenbank, sondern in seiner Rolle als Operational DBMS.