© Excellent backgrounds/Shutterstock.com
von OldSQL über NoSQL zu NewSQL?

Elefant unter Strom


„Relationale Datenbanken sind groß, alt, schwer und langsam wie ein Elefant. Richtig gut können die eigentlich gar nichts“, sagt Michael Stonebraker. Er will den Elefanten mit der Datenbank VoltDB zeigen, dass auch mit ACID und SQL gute Skalierbarkeit und hohe Performance möglich sind.

Liest man den oben zitierten Satz von Michael Stonebraker [1], könnte man ihn für einen Jünger der No­SQL-Bewegung halten. Ist er nicht wirklich. Der Mann ist ein Datenbankdinosaurier, unter anderem Vater der relationalen Datenbank PostgreSQL und der Datawarehouse-Datenbank Vertica, die gerade für 430 Millionen Dollar an HP verkauft wurde. Daneben hat er noch weitere Start-ups wie StreamBase [2], Paradigm4 [3] oder Tamr [4] gegründet. Ach ja, und Professor am MIT ist er auch noch.

Zurück zu den Elefanten. Die mächtigen Vierbeiner sind langsam und behäbig. Das gilt auch für relationale Datenbanken, stellte Stonebraker fest, und bezeichnet sie daher als OldSQL-Datenbanken. Michael Stonebraker untersuchte die Performance relationaler Datenbanken mit dem Benchmark TPC-C [5] – und stellte fest: Nur 4 Prozent der Zeit wird für die eigentliche Anfrage verbraucht. Die restlichen 96 Prozent sind Overhead. Das weckte Stonebrakers Neugier. Was macht denn die Datenbank in der Zeit, in der sie nicht mit der eigentlichen Anfrage beschäftigt ist?

Auf der Suche nach der verlorenen Performance

Relationale Datenbanken erlauben parallele Zugriffe auf die Daten und garantieren dabei die ACID-Eigenschaften. Um die widersprüchlichen Anforderungen Parallelität und Konsistenz unter einen Hut zu bringen, wird mit Sperrmechanismen gearbeitet. Das ist so aufwändig, dass es schon allein 50 Prozent des Overheads und damit nahezu der gesamten Zeit ausmacht.

Den Rest der Performance fressen zu gleichen Teilen Recovery-Mechanismen und die Interaktion mit dem Dateisystem. Die in Recovery investierte Zeit verkürzt einen Neustart oder das Hochfahren nach einem Crash und sorgt dafür, dass die Datenbank schnell wieder verfügbar ist. Mit dem Dateisystem interagieren relationale Datenbanken über den Buffer Pool. Hierbei handelt es sich um die Datenstruktur der Datenbank auf der Festplatte. Er befindet sich teilweise als Cache im Hauptspeicher. Anfragen an die Datenbank greifen nicht direkt auf die Daten im Hauptspeicher zu, sondern gehen immer über den Buffer Pool. Das kostet im Schnitt 25 Prozent der Anfragezeit.

Halten wir nochmal fest: Klassische RDBMS (Relationale Datenbankmanagementsysteme) verbrauchen na...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang