Titelaufnahme

Titel
Big Data - Dokumentorientierte Datenbanken im Vergleich (MongoDB, CouchDB und OrientDB)
Weitere Titel
Big Data - A Comparison of Document-oriented Databases (MongoDB, CouchDB and OrientDB)
VerfasserAzimikhah, Nina
Betreuer / BetreuerinGöschka, Karl Michael
Erschienen2015
Datum der AbgabeJanuar 2015
SpracheDeutsch
DokumenttypBachelorarbeit
Schlagwörter (DE)MongoDB / CouchDB / OrientDB / YCSB / Benchmark / Big Data
Schlagwörter (EN)MongoDB / CouchDB / OrientDB / YCSB / Benchmark / Big Data
Zugriffsbeschränkung
 _
Klassifikation
Zusammenfassung (Deutsch)

Der Sammelbegriff Big Data beschäftigt sich mit riesigen Datenmengen, welche sich durch ihr schnelles Wachstum und ihre große Datentyp-Vielfalt auszeichnen. Herkömmli-che Datenbanken, wie relationale Datenbanken, können mit dieser großen Datenmenge, die sich im Terabyte-Bereich und darüber hinaus befindet, nicht umgehen und stoßen häufig an ihre Grenzen. Daher werden Datenbanken benötigt, die mit diesen Eigenschaften umgehen und diese auch verwalten können.

Diese Arbeit beschäftigt sich mit dem Vergleich von dokumentorientierten Datenbanken in Bezug auf Performance. Die drei Datenbanken, die verglichen werden, sind MongoDB, CouchDB und OrientDB. Der Vergleich wird mit einer Benchmark-Software namens YCSB (Yahoo! Cloud Serving Benchmark) durchgeführt. YCSB ist eine Open-Source-Applika¬tion, welche von Brian F. Cooper entwickelt wurde. Sie bietet vordefinierte Arbeitssets, sogenannte Workloads, die eine Sammlung von Operationen und Daten beinhalten. Mit Workloads ist es möglich, den Benchmark automatisiert durchzuführen. Außerdem bietet YCSB die Möglichkeit, eigene Workloads zu kreieren und diese zu verwenden.

In dieser Arbeit werden jedoch nur vordefinierte Workloads verwendet. Die Datenbanken selbst sind durch Schnittstellen, sogenannte Interface Layer, an die YCSB-Software ge-bunden. Da es sich bei YCSB um ein Open-Source-Werkzeug handelt, ist es möglich, Schnittstellen zu weiteren Datenbanken zu entwickeln sofern nicht bereits verfügbar.

Das Resultat dieser Arbeit soll bei der Entscheidung helfen, welche dieser Datenbanken für ein Projekt verwendet werden soll, und wessen Performance als besser angesehen werden kann.

Die Benchmark-Ergebnisse ergaben, dass CouchDB, sowohl beim Befüllen als auch bei der Ausführung der Operationen, unter allen Workloads langsamer als die Datenbanken MongoDB und OrientDB war. Der Grund hierfür ist, dass CouchDB vor allem mit dem Ziel entwickelt wurde, die Eigenschaft der Konsistenz zu gewährleisten. OrientDB und MongoDB hingegen, um höchste Performance zu gewährleisten, während die Dateninteg-rität nur zweitrangig behandelt wird

Zwischen OrientDB und MongoDB bestehen keine nennenswerten Unterschiede. Aller-dings erreicht OrientDB bei Erhöhung der Anzahl der Datensätze, im Vergleich zu MongoDB, etwas höhere Latenzen.

Auch durch die Erhöhung der Anzahl der Datensätze kamen unter den verschiedenen Workloads keine weiteren Sonderheiten zum vorschein.

CouchDB sollte vor allem für Anwendungen eingesetzt werden, in denen Konsistenz an oberster Stelle steht. Ein Beispiel hierfür wäre etwa der Finanzmarkt. Während für soziale Netzwerke wie Facebook, Twitter oder LinkedIn durchaus auch zeitlich inkonsistente Datenbanken wie MongoDB und OrientDB in Frage kommen. Hierbei wäre allerdings aufgrund der vorliegenden Messdaten MongoDB zu empfehlen.

Zusammenfassung (Englisch)

The general term Big Data deals with various types of data and the amount of it, we are talking about terabytes and more, is increasing fast and unimaginable.

Nowadays, traditional databases like relational databases cannot handle that amount of data because it is expensive and needs a lot of effort to save it. Therefore databases are needed which are able to manage that amount of data. This work deals with the comparison of document store databases in order to evaluate its performance.

Selected databases are: MongoDB, CouchDB and OrientDB. The comparison is conducted with a benchmark tool called YCSB – Yahoo! Cloud Serving Benchmark. YCSB is an open source tool developed by Brian F. Cooper. It offers predefined workloads which contain a set of operations and data which will be loaded into the databases. With those workloads it is possible to compare the databases in a standardized and meaningful manner. The tool offers also the ability to create individual workloads. However, in this work only the predefined workloads are used. The databases themselves are connected through interface layers to the YCSB tool. Since it is an open source project everyone is able to develop interface layers for any database. The result of this benchmark should help companies and also private users to evaluate and decide on which database is the best choice for their projects.

The results of the conducted benchmark suggest, that both inserting data and the execution of operations using CouchDB are much more time-consuming compared to MongoDB and Orient DB. The apparent reason for this behavior might be the different data integrity approach, as CouchDB’s top priority is consistency, while OrientDB and MongoDB try to achieve maximum performance, treating consistency only secondarily.

There are almost no noteworthy differences between OrientDB and MongoDB. However, OrientDB seems to respond with slightly higher latencies with increasing amount of data records. Apart from that, no further special effects occur during the various different workload scenarios.

Although CouchDB did not perform as well as its competitors, it remains as the only solution, when it comes to financial applications for the finance market or any other business area where consistency is mandatory. While social networks like Facebook, Twitter or LinkedIn can truly benefit of having a performance driven backend such as MongoDB or OrientDB.

However, in this scenario the performance results would suggest using MongoDB.