Entwicklung eines skalierbaren und verteilten Datenbanksystems -  Jan Kristof Nidzwetzki

Entwicklung eines skalierbaren und verteilten Datenbanksystems (eBook)

Auf Basis von Apache Cassandra und SECONDO
eBook Download: PDF
2016 | 1. Auflage
312 Seiten
Springer Vieweg (Verlag)
978-3-658-12444-1 (ISBN)
Systemvoraussetzungen
46,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Jan Kristof Nidzwetzki hat in seiner Masterarbeit ein erweiterbares Datenbanksystem mit einem hochverfügbaren Key-Value-Store gekoppelt und untersucht, wie sich die Vorteile beider Systeme kombinieren lassen. Im Gegensatz zu Datenbanksystemen skalieren Key-Value-Stores sehr gut, bieten jedoch nur sehr einfache Operationen für die Abfrageauswertung an. Durch die Kopplung ergibt sich ein skalierbares, ausfallsicheres System, das in der Lage ist, beliebige Updateraten zu unterstützen und auf den gespeicherten Daten komplexe Abfragen auszuführen.



Jan Kristof Nidzwetzki forschte im Zuge seines Masterstudiums an der Fakultät für Mathematik und Informatik der FernUniversität Hagen. Er ist heute als Softwareentwickler sowie als externer Doktorand am Lehrgebiet Datenbanksysteme für neue Anwendungen der FernUniversität in Hagen tätig. 

Geleitwort 6
Zusammenfassung 8
Inhaltsverzeichnis 9
Abbildungsverzeichnis 15
Tabellenverzeichnis 18
Abkürzungsverzeichnis 20
1. Einleitung 22
1.1. Ziele dieser Arbeit 23
1.2. Aufbau dieser Arbeit 24
2. Grundlagen 27
2.1. Verteilte Datenbankmanagementsysteme 27
2.1.1. Architekturmodelle von VDBMS 28
2.1.2. Fragmentierung und Allokation 29
2.2. Konsistenz 30
2.2.1. Datenzentrierte Konsistenmodelle 32
2.2.2. Clientzentrierte Konsistenmodelle 33
2.3. Fehlerarten 34
2.4. Hashing 34
2.4.1. Hashtabellen 35
2.4.2. Distributed Hashtables 35
2.5. Das CAP-Theorem 36
2.6. NoSQL-Datenbanken 38
2.6.1. Key Value Stores 39
2.7. Cassandra 41
2.7.1. DataStax, Inc. 42
2.7.2. Grundlagen der Cassandra Query Language 42
2.7.3. Zusammengesetzte Primärschlüssel 46
2.7.4. Sekundärindizes 46
2.7.5. Virtuelle Knoten 49
2.7.6. Token-Bereiche 49
2.8. Stromverarbeitung 50
2.9. Speedup und Scaleup 52
2.9.1. Speedup 52
2.9.2. Scaleup 53
2.10. SECONDO 53
2.10.1. Second-Order Signature 54
2.10.2. Architektur von SECONDO 56
2.10.3. Fortschrittschätzung 56
2.11. MapReduce 58
2.11.1. Hadoop 60
2.12. Parallel SECONDO 61
2.12.1. Ausführungspläne in Parallel SECONDO 61
2.13. Verwandte Arbeiten 61
3. Datenströme 66
3.1. Aufzeichnungs- und Analysekomponente 66
3.2. Aufzeichnung eines Datenstroms 67
3.3. Erweiterung der ImEx-Algebra 68
3.3.1. Operator csvimport 68
3.4. Loadbalancer 71
3.4.1. Scheduling 72
3.4.2. Umgang mit Ausfällen 75
3.4.3. Anwendung 77
3.5. Lastgenerator 79
4. Kopplung von SECONDO mit Cassandra 82
4.1. Cassandra-Algebra 82
4.1.1. Operator cspread 84
4.1.2. Operator ccollect 86
4.1.3. Operator ccollectlocal 87
4.1.4. Operator ccollectrange 87
4.1.5. Operator ccollectquery 88
4.1.6. Operator clist 89
4.1.7. Operator cdelete 89
4.1.8. Operator cquerylist 91
4.1.9. Operator cqueryexecute 92
4.1.10. Operator cqueryreset 93
4.1.11. Operator cquerywait 93
4.1.12. Operator sleep 96
4.1.13. Operator statistics 96
4.2. Implementation der Cassandra-Algebra 98
4.2.1. Export von SECONDO-Tupeln 98
4.2.2. Partitionierung von Tupeln 99
4.2.3. Adressierung von Tupeln 99
4.2.4. Ablage von SECONDO-Relationen in Cassandra 100
4.2.5. Bestimmung der lokalen Token-Bereiche 101
4.2.6. Loadbalancing des cpp-Treibers 102
4.2.7. Parallelisierung von CQL-Abfragen 105
4.2.8. Connection Pool 106
4.2.9. Bekannte Probleme 106
5. Verteilte Abfrageauswertung 109
5.1. Grundlagen 109
5.1.1. Partitionierung von Daten 110
5.1.2. Verteilter Join – Ein erster Ansatz 111
5.2. Distributed SECONDO 112
5.2.1. Management-System 114
5.2.2. QueryExecutor – Verteilung von Abfragen 115
5.2.3. Platzhalter in Abfragen 116
5.2.4. Beispielumgebung 122
5.2.5. Systemtabellen von Distributed SECONDO 122
5.2.6. Management von Distributed SECONDO 125
5.2.7. Robuste Partitionierung des logischen Ringes 128
5.2.8. Robuste Partitionierung –Beispiele 134
5.2.9. Atomares Einbringen von Tupeln 138
5.2.10. Robustes Lesen von Relationen 141
5.2.11. Verteilter Join – Die robuste Variante 143
6. Fallstudien 145
6.1. Verarbeiten von Positionsdaten 145
6.1.1. Problemstellung 145
6.1.2. Lösungsmöglichkeit 146
6.1.3. Analyse der Koordinaten 149
6.2. Analyse des Logfiles eines Webservers 152
6.2.1. Problemstellung 152
6.2.2. Lösungsmöglichkeit 153
6.3. Partition based spatial merge join 157
6.3.1. Problemstellung 158
6.3.2. Lösungsmöglichkeit 159
6.4. Zusammenfassung 162
7. Experimente 163
7.1. Umgebung 163
7.1.1. Grundlegendes zu den Experimenten 163
7.1.2. Hardware des Clusters 164
7.1.3. Software des Clusters 166
7.1.4. Zusätzlich installierte Software 167
7.2. Verarbeitung von Datenströmen 168
7.2.1. Durchsatz des Operators csvimport 168
7.3. Datenstromverarbeitung auf homogenen Systemen 172
7.3.1. Durchführung 173
7.3.2. Ergebnis 175
7.3.3. Zusammenfassung 176
7.4. Datenstromverarbeitung auf heterogenen Systemen 178
7.4.1. Durchführung 179
7.4.2. Ergebnis 180
7.4.3. Einfluss der Größe des Bestätigungsfensters 182
7.4.4. Zusammenfassung 186
7.5. Cassandra als Datenspeicher 187
7.5.1. Anzahl der Cassandra-Knoten 187
7.5.2. Konsistenz beim Schreiben 190
7.5.3. Lokalität in Cassandra 191
7.5.4. Größe der Tupel 196
7.5.5. Anzahl der Tupel 197
7.6. Distributed SECONDO 199
7.6.1. Ausführen von verteilten Abfragen 199
7.6.2. Token-Ranges und die Laufzeit von verteilten Abfragen 203
7.6.3. Verteilter Join 204
7.6.4. Ein verzögerter Join mit erhöhter Laufzeit 206
7.6.5. Zeit für den Im- und Export von Tupeln 214
7.6.6. Verteilter spatial Join 214
7.6.7. Verteilter spatial Join ohne Rückschreiben der Ergebnisse 220
7.6.8. Fortschrittschätzung 226
7.6.9. Fazit 228
8. Zusammenfassung und Ausblick 229
8.1. Erweiterungen 229
8.1.1. Anzahl der Distributed SECONDO-Knoten 230
8.1.2. Automatische Skalierung 230
8.1.3. Prepared Statements in SECONDO 231
8.1.4. Laden von einzelnen Token 232
8.1.5. Umstellung auf einen neuen Cassandra-Treiber 232
8.2. Ausblick 233
Anhang A. Veränderungen am DataStax cpp-driver 235
Anhang B. Verwendete Bibliotheken 238
Anhang C. Im Cluster eingesetzte Festplatten 240
Anhang D. UML-Diagramme 243
D.1. CSV-Parser 243
D.2. Loadbalancer 244
Anhang E. Codeblöcke 245
E.1. Zu Kapitel 5 gehörende Codeblöcke 245
E.2. Zu Kapitel 6 gehörende Codeblöcke 247
E.3. Zu Kapitel 7 gehörende Codeblöcke 250
Anhang F. Übersicht über Cassandra 257
F.1. Einleitung 257
F.1.1. Geschichte 258
F.1.2. Grundlagen 258
F.1.3. Einsatzbereiche 259
F.2. Cassandra 260
F.2.1. Datenmodell 260
F.2.2. Architektur von Cassandra 263
F.2.3. Lesen und Schreiben von Daten 269
F.2.4. Sicherheit 275
F.2.5. Performance 276
F.3. Erweiterungen von Cassandra 277
F.3.1. CQL– Cassandra Query Language 278
F.3.2. Integration von Hadoop 279
F.4. Fazit 280
Anhang G. Scripte 281
Anhang H. Quellcode 299
Listingverzeichnis 300
Literaturverzeichnis 302

Erscheint lt. Verlag 29.1.2016
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Software Entwicklung
Mathematik / Informatik Informatik Web / Internet
ISBN-10 3-658-12444-X / 365812444X
ISBN-13 978-3-658-12444-1 / 9783658124441
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 2,2 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Jürgen Sieben

eBook Download (2023)
Rheinwerk Computing (Verlag)
89,90
Eine kompakte Einführung

von Brendan Burns; Joe Beda; Kelsey Hightower; Lachlan Evenson

eBook Download (2023)
dpunkt (Verlag)
39,90