ebook img

Entwicklung eines skalierbaren und verteilten Datenbanksystems: Auf Basis von Apache Cassandra und SECONDO PDF

312 Pages·2016·2.1 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Entwicklung eines skalierbaren und verteilten Datenbanksystems: Auf Basis von Apache Cassandra und SECONDO

BestMasters Mit „BestMasters“ zeichnet Springer die besten Masterarbeiten aus, die an renom- mierten Hochschulen in Deutschland, Österreich und der Schweiz entstanden sind. Die mit Höchstnote ausgezeichneten Arbeiten wurden durch Gutachter zur Ver- öff entlichung empfohlen und behandeln aktuelle Th emen aus unterschiedlichen Fachgebieten der Naturwissenschaft en, Psychologie, Technik und Wirtschaft swis- senschaft en. Die Reihe wendet sich an Praktiker und Wissenschaft ler gleichermaßen und soll insbesondere auch Nachwuchswissenschaft lern Orientierung geben. Jan Kristof Nidzwetzki Entwicklung eines skalierbaren und verteilten Datenbanksystems Auf Basis von Apache Cassandra und SECONDO Mit einem Geleitwort von Prof. Dr. Ralf Hartmut Güting Jan Kristof Nidzwetzki Hagen, Deutschland BestMasters ISBN 978-3-658-12443-4 ISBN 978-3-658-12444-1 (eBook) DOI 10.1007/978-3-658-12444-1 Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbi- bliogra(cid:191) e; detaillierte bibliogra(cid:191) sche Daten sind im Internet über http://dnb.d-nb.de abrufbar. Springer Vieweg © Springer Fachmedien Wiesbaden 2016 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikrover(cid:191) lmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informa- tionen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag noch die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen. Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier Springer Fachmedien Wiesbaden ist Teil der Fachverlagsgruppe Springer Science+Business Media (www.springer.com) Geleitwort Die Verarbeitung sehr großer Datenmengen ist im Zeitalter des Internet ein drängendes Problem und ein »heißes« Forschungsthema geworden. Früher waren sehr große Datenmengen großen Firmen und einigen wis- senschaftlichen Anwendungen vorbehalten und ihre Wachstumsraten wa- ren vorhersehbar. Im Internet können aber Ideen auch in kurzer Zeit sehr populärwerdenundweltweitdramatischwachsendeNutzerzahlenfinden. Man denke an Google, Amazon, Facebook, Twitter, Youtube usw. Solche Datenmengen sind nur noch mit riesigen Rechnerclustern zu bewältigen. Google hat mit dem MapReduce-Ansatz die Programmierung von An- wendungen auf Clustern von Hunderten oder Tausenden Rechnern stark vereinfacht und sie skalierbar und ausfallsicher gemacht. Ausfallsicher- heit ist unverzichtbar, da bei solchen Zahlen von Rechnern ständig ei- nige defekt sind oder werden. Die entsprechende Open-Source-Plattform Hadoop ist überaus populär geworden. Da MapReduce mit (Schlüssel, Wert)-Paaren arbeitet, wurden in der Folge Key-Value-Stores eingeführt, die Daten in dieser Form skalierbar und ausfallsicher speichern. Thema der Arbeit ist Entwurf, Implementierung und experimentelle Auswertung der Kopplung eines Key-Value-Stores mit einem erweiterba- ren Datenbanksystem. Konkret werden die Systeme Cassandra und Se- condo miteinander verbunden. CassandraorganisiertSchlüssel-WertPaareverteiltineinemsogenann- ten logischen Ring. Der Ring stellt den Wertebereich einer Hashfunktion dar. Eine Menge von Cassandra-Instanzen (Knoten) auf verschiedenen Rechnern ist Schlüsselpositionen im logischen Ring zugeordnet. Jede In- stanz auf Position p ist zuständig für die Schlüssel-Wert Paare mit Has- i hwerten von Schlüsseln zwischen pi−1 und pi. Durch Replikation von Da- ten über mehrere Knoten läßt sich Ausfallsicherheit erreichen. Durch die Möglichkeit,weitereKnotenanbeliebigenPositionenimRingeinzufügen, ergibt sich Skalierbarkeit. NoSQL-SystemewieCassandrabietenallerdingsnurrudimentäreFunk- tionen zur Anfrageauswertung. Insbesondere werden Joins nicht unter- stützt. Secondo ist ein prototypisches Datenbanksystem, dessen Architektur aufErweiterbarkeitangelegtwurde.SecondoistüberdefinierteSchnitt- stellen erweiterbar um sogenannte Algebramodule, die jeweils spezielle DatentypenundOperationendaraufanbietenkönnen.SolcheAlgebramo- dule können auch Indexstrukturen oder Algorithmen für die Anfrageaus- VI Geleitwort wertungwieJoinalgorithmenanbieten.EbensoistdieEbenederAnfrage- optimierung oder die der graphischen Benutzerschnittstelle erweiterbar. NebendererweiterbarenArchitekturliegtderFokusvon Secondoauf der Unterstützung geometrischer Datentypen und Operationen sowie de- renzeitabhängigerVarianten,dersogenanntenMovingObjects.Sokönnen etwa Bewegungsverläufe von Fahrzeugen, Personen oder Tieren effizient in der Datenbank verarbeitet und auf einfache Weise abgefragt werden. Allerdings arbeitet ein Secondo Datenbankserver zunächst auf einem einzelnenRechner;somitistkeinerleiSkalierbarkeit,geschweigedennAus- fallsicherheit, gegeben. DieindieserArbeitentwickelteKopplungvonCassandraundSecondo bietet aus Sicht der einzelnen Systeme folgende Vorteile: • Cassandra: durch Hinzunahme von Secondo wird komplexe ver- teilte Anfrageausführung möglich. • Secondo: das Gesamtsystem bietet verteilte Anfrageausführung. Somit wird Parallelisierung von Secondo-Instanzen erreicht. Dar- überhinausbietetCassandraskalierbareVerarbeitungvonUpdates. Insgesamtergibtsicheinskalierbares,ausfallsicheresSystem,dasinder Lageist,beliebigeUpdateratenzuunterstützenundaufdengespeicherten Daten komplexe Anfragen auszuführen. Im Bereich der Verarbeitung von BewegungsdatensinddieseEigenschafteneinzigartig.DurchdieErweiter- barkeit von Secondo kann das Gesamtsystem Distributed Secondo auch für andere Anwendungen angepasst werden. Ralf Hartmut Güting LG Datenbanksysteme für neue Anwendungen Fakultät für Mathematik und Informatik FernUniversität Hagen Zusammenfassung Im Rahmen dieser Arbeit wird ein erweiterbares Datenbanksystem mit einem hochverfügbaren Key-Value-Store gekoppelt. Ziel ist es, dem Da- tenbanksystem einen verteilten und hochverfügbaren Datenspeicher zur Verfügung zu stellen. Ebenfalls werden Themen wie Verteilung und Ver- arbeitung von Datenströmen sowie die verteilte Abfrageauswertung be- handelt. Inhaltsverzeichnis Abbildungsverzeichnis XV Tabellenverzeichnis XIX Abkürzungsverzeichnis XXI 1. Einleitung 1 1.1. Ziele dieser Arbeit . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Aufbau dieser Arbeit . . . . . . . . . . . . . . . . . . . . . 3 2. Grundlagen 7 2.1. Verteilte Datenbankmanagementsysteme . . . . . . . . . . 7 2.1.1. Architekturmodelle von VDBMS . . . . . . . . . . 8 2.1.2. Fragmentierung und Allokation . . . . . . . . . . . 9 2.2. Konsistenz. . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.1. Datenzentrierte Konsistenmodelle. . . . . . . . . . 12 2.2.2. Clientzentrierte Konsistenmodelle. . . . . . . . . . 13 2.3. Fehlerarten . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4. Hashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.1. Hashtabellen . . . . . . . . . . . . . . . . . . . . . 15 2.4.2. Distributed Hashtables. . . . . . . . . . . . . . . . 15 2.5. Das CAP-Theorem . . . . . . . . . . . . . . . . . . . . . . 16 2.6. NoSQL-Datenbanken . . . . . . . . . . . . . . . . . . . . . 18 2.6.1. Key Value Stores . . . . . . . . . . . . . . . . . . . 19 2.7. Cassandra . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.7.1. DataStax, Inc. . . . . . . . . . . . . . . . . . . . . 22 2.7.2. Grundlagen der Cassandra Query Language . . . . 22 2.7.3. Zusammengesetzte Primärschlüssel . . . . . . . . . 26 2.7.4. Sekundärindizes . . . . . . . . . . . . . . . . . . . 26 2.7.5. Virtuelle Knoten . . . . . . . . . . . . . . . . . . . 29 2.7.6. Token-Bereiche . . . . . . . . . . . . . . . . . . . . 29 2.8. Stromverarbeitung . . . . . . . . . . . . . . . . . . . . . . 30 X Inhaltsverzeichnis 2.9. Speedup und Scaleup . . . . . . . . . . . . . . . . . . . . . 32 2.9.1. Speedup . . . . . . . . . . . . . . . . . . . . . . . . 32 2.9.2. Scaleup . . . . . . . . . . . . . . . . . . . . . . . . 33 2.10.SECONDO . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.10.1. Second-Order Signature . . . . . . . . . . . . . . . 34 2.10.2. Architektur von SECONDO . . . . . . . . . . . . . 36 2.10.3. Fortschrittschätzung . . . . . . . . . . . . . . . . . 36 2.11.MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.11.1. Hadoop . . . . . . . . . . . . . . . . . . . . . . . . 40 2.12.Parallel SECONDO . . . . . . . . . . . . . . . . . . . . . 41 2.12.1. Ausführungspläne in Parallel SECONDO . . . . . 41 2.13.Verwandte Arbeiten . . . . . . . . . . . . . . . . . . . . . 41 3. Datenströme 47 3.1. Aufzeichnungs- und Analysekomponente . . . . . . . . . . 47 3.2. Aufzeichnung eines Datenstroms . . . . . . . . . . . . . . 48 3.3. Erweiterung der ImEx-Algebra . . . . . . . . . . . . . . . 49 3.3.1. Operator csvimport . . . . . . . . . . . . . . . . . 49 3.4. Loadbalancer . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4.1. Scheduling . . . . . . . . . . . . . . . . . . . . . . 53 3.4.2. Umgang mit Ausfällen . . . . . . . . . . . . . . . . 56 3.4.3. Anwendung . . . . . . . . . . . . . . . . . . . . . . 58 3.5. Lastgenerator . . . . . . . . . . . . . . . . . . . . . . . . . 60 4. Kopplung von SECONDO mit Cassandra 63 4.1. Cassandra-Algebra . . . . . . . . . . . . . . . . . . . . . . 63 4.1.1. Operator cspread . . . . . . . . . . . . . . . . . . . 65 4.1.2. Operator ccollect . . . . . . . . . . . . . . . . . . . 67 4.1.3. Operator ccollectlocal . . . . . . . . . . . . . . . . 68 4.1.4. Operator ccollectrange . . . . . . . . . . . . . . . . 68 4.1.5. Operator ccollectquery . . . . . . . . . . . . . . . . 69 4.1.6. Operator clist . . . . . . . . . . . . . . . . . . . . . 70 4.1.7. Operator cdelete . . . . . . . . . . . . . . . . . . . 70 4.1.8. Operator cquerylist. . . . . . . . . . . . . . . . . . 72 4.1.9. Operator cqueryexecute . . . . . . . . . . . . . . . 73 4.1.10. Operator cqueryreset . . . . . . . . . . . . . . . . . 74 4.1.11. Operator cquerywait . . . . . . . . . . . . . . . . . 74 4.1.12. Operator sleep . . . . . . . . . . . . . . . . . . . . 77 4.1.13. Operator statistics . . . . . . . . . . . . . . . . . . 77

Description:
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 s
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.