VoltDB ist eine sehr schnelle InMemory Datenbank mit den Ziel Fast Data (Velocity)
so schnell wie möglich auszuwerten. VoltDB basiert dabei auf NewSQL.
Die Speicherpyramide visualisiert die verschiedenen Speicherarten. VoltDB befindet sich auf der dritten Ebene innerhalb des Arbeitspeichers. Je tiefer die Ebenen um so langsamer wird die Speicherperformance.
Die größte Unterscheidung liegt in der Spezifikation von VoltDB. VoltDB ist eine InMemory Datenbank und verwendet NewSQL. NewSQL profiert positiv von beiden SQL und NoSQL Ansätzen.
Desweiteren bietet VOLT DB eine Shared Nothing Architektur wo jeder Knoten unabhängig voneiander innerhalb eines Clusters seine Arbeitsaufgaben durchführt.
Diese Architektur bringt folgende Features:
1.No Singlepoint of Failure
2. No Shared Memory
3. Each Node Independent
4. Scale Infininently
5. Data Partitioning (Sharding)
Volt DB ist besonders gut für Leistungsspitzen sog. FAST DATA.
FAST DATA Szenarien finden wir in z.B. in Börsen wo schnell sehr große Datenmengen analysiert werden müssen.
K-Saftety bietet durch das Sharding eine zusätzliche Ausfallsicherheit, so dass in dem unterem Beispiel ein gesamter Cluster ausfallen könnte ohne weitere Probleme zu
verursachen. Dies löst im weiteren Verlauf das Logging - Problem, welches einen wichtigen Flaschenhals in der Verarbeitung bei traditionellen Datenbanken ist.
NewSQL Definition:
NewSQL Eigenschaften:
NewSQL ist ein relatives frisch geschlüpftes Kücken auf und leidet derzeit immer noch unter der
Dominanz von SQL und NoSQL. Die Popularität wächst nur sehr langsam.
NewSQL Ecosystem:
VoltDB Historie
Die erste Version 1.0 ist am Mai 2010 erschienen. Derzeitig ist die Version 7.5 von 2017 aktuell . VoltDB ist frei zugänglich, aber es gibt auch eine Enterprise Edition diese wird VoltOne genannt. Der Mitbegründer von VoltDB ist Michael Stonebraker ein sehr bekannter DB-Wissenschaftler der schon bei unzähligen anderen DB Projekten wie Ingres und Posgre beteiligt war.
VoltDB ist eine Alternative.
Während zu MySQL es Maria DB gibt gibt es zu SAP HANA, Oracle TimesTen oder NuoDB, VoltDB als eine freie Alternative.
VoltDB Performance
Die Partitionierung geschieht bei VoltDB durch das Sharding. Dadurch werden schneller Lese- und Schreibgeschwindigkeiten ermöglicht als bei anderen DB Systemen. Die Behauptung lautet das VoltDB 100 mal schneller ist als MySQL, 45 mal schneller ist als Oracle und 13 mal schneller ist als Cassandra.
Michael Stonebraker hatte sich mit seiner wissenschaftlichen Arbeitsgruppe damit befasst, dass die traditionellen Flaschenhälse einer Datenbank sehr viel Performance verbrauchen im Gegensatz zur
eigentlichen Datenbanknutzung. Die Flaschenhälse entstehen wenn bestimmte Daten gelesen oder geschrieben werden. Wie z.B. durch das Locking, Latching Verfahren oder dem Index Management bzw.
Buffer Management. Wenn diese Flaschenhälse wegfallen würden könnte das gesamte System von einen großen Performance Boost profitieren.
VoltDB eliminiert mehrere Flaschenhälse:
High Throughput durch - InMemory
Low Latency durch - InMemory
Kein Buffer Management durch - InMemory
Kein Logging durch - K-Safety
Kein Locking oder Latching durch den kombinierten Einsatz von NewSQL und Sharding
Skalierbarkeit
1 Quad Core Node kann Millionen SQL Statements ausführen
1 Cluster kann mehrere hundert Tausende Transaktionen durchführen Fast lineare Skalierung - ca. 90% Tx-Performancezuwachs pro Node
Haupteinsatzgebiete:
Fast Data (VELOCITY)
Dadurch werden die beiden Kerngebiete von VoltDB sichtbar:
1. Online Transaction Processing (OLTP)
2. Online Analytics Processing (OLAP)
- Sensoren, Clickstreams, Echtzeitdaten von Maschinen
- Events, Transaktionen, Kundeninteraktion
- Webapplikationen (Smart Grid)
- Risikoerkennung, Sicherheitsanalysen, Vorhersagen
- Echtzeitwerbung (RTA)
Kommentar schreiben