bigdata:newsql
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
bigdata:newsql [2015/10/05 21:31] – [Architektur-Prinzipien] brueck | bigdata:newsql [2015/10/05 21:33] – [Vergleich OldSQL, NoSQL und NewSQL] brueck | ||
---|---|---|---|
Zeile 64: | Zeile 64: | ||
Auf Grundlage von Shore wurde dann mit „H-Store“, | Auf Grundlage von Shore wurde dann mit „H-Store“, | ||
- | Für die Umsetzung nutzten sie Techniken wie die **Shared-Nothing**-Architektur, | + | Für die Umsetzung nutzten sie Techniken wie die **Shared-Nothing**-Architektur, |
Vor allem wurde auf [[bigdata: | Vor allem wurde auf [[bigdata: | ||
- | Um Latching- und Locking-Overhead zu vermeiden, wurde auf klassisches Multithreading mit geteilten Ressourcen verzichtet, stattdessen wird pro Prozessorkern ein **Single-Thread** betrieben, der einen eigenes Stück RAM für sich bekommt und keinerlei Ressourcen oder Datenstrukturen teilt. In einem System mit n CPUs wird der Hauptspeicher also in n Teile geteilt. Somit ist auch keine aufwendige Ressourcenverwaltung wie in aktuellen (multithreaded) RDBMS nötig. ([[bigdata: | + | Um Latching- und Locking-Overhead zu vermeiden, wurde auf klassisches Multithreading mit geteilten Ressourcen verzichtet, stattdessen wird pro Prozessorkern ein **Single-Thread** betrieben, der einen eigenes Stück RAM für sich bekommt und keinerlei Ressourcen oder Datenstrukturen teilt. In einem System mit n CPUs wird der Hauptspeicher also in n Teile geteilt. Somit ist auch keine aufwendige Ressourcenverwaltung wie in aktuellen (multithreaded) RDBMS nötig. ([[bigdata: |
- | Für die Sicherheit des Datenbestandes setzen H-Store und VoltDB auf **Command-Logging**, | + | Für die Sicherheit des Datenbestandes setzen H-Store und VoltDB auf **Command-Logging**, |
- | Logging kann alternativ auf ein kurzlebigen, | + | Logging kann alternativ auf ein kurzlebigen, |
Für Abfragen kommen vom Nutzer vordefinierte **Stored Procedures** zum Einsatz, die in Java geschrieben werden und eingebetteten SQL-92-Code zur Datenbankabfrage nutzen. | Für Abfragen kommen vom Nutzer vordefinierte **Stored Procedures** zum Einsatz, die in Java geschrieben werden und eingebetteten SQL-92-Code zur Datenbankabfrage nutzen. | ||
- | Eine weitere interessante NewSQL-Implementierung ist „**Splice Machine**“. Dabei handelt es sich um eine relationale Datenbank, die auf [[bigdata: | + | Eine weitere interessante NewSQL-Implementierung ist „**Splice Machine**“. Dabei handelt es sich um eine relationale Datenbank, die auf [[bigdata: |
- | Es vereint dabei SQL mit der [[bigdata: | + | Es vereint dabei SQL mit der [[bigdata: |
===== Vergleich OldSQL, NoSQL und NewSQL ===== | ===== Vergleich OldSQL, NoSQL und NewSQL ===== | ||
- | Im Gegensatz zu den traditionellen RDBMS (OldSQL) sind NewSQL-Systeme, | + | Im Gegensatz zu den traditionellen RDBMS (OldSQL) sind NewSQL-Systeme, |
- | Ein Vorteil gegenüber NoSQL ist, dass sie mit den standardisierten Zugriffs-APIs und Treiber der traditionellen Systeme kompatibel sind, das heißt, dass bestehende Applikationen auch nicht angepasst werden müssen. Dies ist auch ein Vorteil gegenüber den NoSQL-Systemen, | + | Ein Vorteil gegenüber NoSQL ist, dass sie mit den standardisierten Zugriffs-APIs und Treiber der traditionellen Systeme kompatibel sind, das heißt, dass bestehende Applikationen auch nicht angepasst werden müssen. Dies ist auch ein Vorteil gegenüber den NoSQL-Systemen, |
- | Allgemein bestimmt die Art der Daten auch die Wahl der Datenbank. Wird Datenintegrität und Konsistenz verlangt, steht die Wahl zwischen RDBMS und NewSQL. NewSQL-Systeme wurden dabei mit besonderem Fokus auf Performance und Skalierbarkeit entworfen. OldSQL-Systeme wurden für die Hardware-Architekturen der 70er und 80er entwickelt und werden so teilweise durch unnötig großen Overhead gebremst, wohingegen die neue Generation versucht, diesen unter Einbeziehung neuer Hardwareentwicklungen weitestgehend zu minimieren, um so um Größenordnungen schneller als traditionelle RDBMS zu werden (vgl. [[bigdata: | + | Allgemein bestimmt die Art der Daten auch die Wahl der Datenbank. Wird Datenintegrität und Konsistenz verlangt, steht die Wahl zwischen RDBMS und NewSQL. NewSQL-Systeme wurden dabei mit besonderem Fokus auf Performance und Skalierbarkeit entworfen. OldSQL-Systeme wurden für die Hardware-Architekturen der 70er und 80er entwickelt und werden so teilweise durch unnötig großen Overhead gebremst, wohingegen die neue Generation versucht, diesen unter Einbeziehung neuer Hardwareentwicklungen weitestgehend zu minimieren, um so um Größenordnungen schneller als traditionelle RDBMS zu werden (vgl. [[bigdata: |
- | Ist es nötig, dass das System zu skalieren, bieten sich NoSQL- und NewSQL-Systeme an, da sie, im Gegensatz du RDBMS, nicht auf ein kostspieliges [[bigdata: | + | Ist es nötig, dass das System zu skalieren, bieten sich NoSQL- und NewSQL-Systeme an, da sie, im Gegensatz du RDBMS, nicht auf ein kostspieliges [[bigdata: |
bigdata/newsql.txt · Zuletzt geändert: 2015/10/05 21:44 von brueck