In der kommerziellen Datenbank-Welt haben sich spaltenbasierte Datenbanken bereits längst durchgesetzt.
Die OpenSource-Welt hinkt unterdes immer noch hinterher. Das behindert nicht nur OpenSource-Projekte, sondern sämtliche Produkte, die auf OpenSource-Datenbanken aufsetzen.
21unity arbeitet mit seinen Entwicklungs-Partnern an einer hochperformanten OpenSource spaltenbasierten In-Memory-Datenbank (auf OpenPOWER Technologie) als Alternative zu proprietären analytischen Datenbanken mit dem Projektnamen MEMCP.
In diesem Artikel stellen wir euch das OpenSource Projekt MEMCP vor.
Eine spaltenbasierte In-Memory-Datenbank, die sowohl OLAP, als auch OLTP-Arbeitslasten performant handhaben kann.
Gerade komplexere Anwendungen haben häufig Tabellen mit über hundert Spalten. Viele Spalten sind sogar leer. Zeilenbasierte Datenbanken müssen aber für jede Speicherzelle entsprechend Speicher vorhalten.
Die Balance zwischen OLAP und OLTP …
OLAP-Datenbanken werden zum Großteil von BI-Tools (Business Intelligence) genutzt. Diese Programme erlauben das Analysieren und Durchforsten von Daten.
Die Thematik hierbei: Je mehr Daten anfallen, desto langsamer wird die Analytik. Ein Klick im BI-Programm dauert dann mehrere Sekunden bis hin zu Minuten oder Stunden.
Hier ist Abhilfe möglich: Analytische Datenbank-Anfragen lassen sich sehr leicht parallelisieren.
Anstatt dass eine CPU die Summe über alle Datensätze bildet, kann man den Speicher zum Beispiel auf 8 verschiedene Rechenknoten aufteilen.
Das Kommando zum Errechnen der Summe verteilt man dann auf alle 8 Knoten und bestimmt das Ergebnis dann aus den 8 Teilsummen.
Möchte man erreichen, dass jeder Klick im BI-Tool nicht länger als 100ms Rechenzeit in Anspruch nimmt, kann man genau errechnen, wie groß das Verhältnis von RAM zu CPU-Kernen sein muss. So könnte man pro 1 GiB RAM einen CPU-Kern dazustellen.
Datenbanken neu denken …
Neben den Überlegungen zur bestmöglichen Speicherung, Komprimierung und Parallelisierung, soll auch die Kommunikation mit der Außenwelt etwas überdacht werden.
Die meisten Datenbanken haben ein SQL-Frontend, damit die Anwendung mit dem Storage kommunizieren kann. Es gibt aber auch andere Anfragesprachen, wie zum Beispiel SPARQL, einer Sprache, mit der man RDF-Daten aus dem semantischen Web abfragen kann. Mit dieser graphbasierten Anfragesprache ist es möglich, zum Beispiel Wiki-Daten abzufragen – beispielsweise die Namen aller Hauptstädte mit mehr als 1 Mio Einwohner, die sich in einem Land mit der Regierungsform Demokratie befinden. Auch diverse NoSQL-Datenbanken haben jeweils ihre komplett eigenen Anfragesprachen.
Momentan ist es so, dass solche alternativen Datenbanken von Grund auf programmiert werden müssten, da es keine einheitliche Storage-Engine gibt.
Mit MEMCP soll das jetzt anders werden.
Aufgrund unserer AI Entwicklungen auf Open POWER stellten wir uns die Frage ob Standard OpenSource Datenbanken noch zeitgemäß sind und starten das Projekt In-Memory-Datenbank mit dem Projektnamen MEMCP.
In Kürze folgt hier mehr dazu mit den passenden Links zum OpenSource Projekt.
Guten Morgen, recht herzlichen Dank für die gelungenen Post;)
Alles Gute
Robert