NoSQL-Konferenz in Berlin

Zunehmend entstehen Anwendungen, deren Bedürfnisse die etablierten relationalen Datenbanken nicht optimal erfüllen können. Da lohnt ein Blick auf die aktuellen Entwicklungen bei dokumenten- und objektorientierten Datenbanken.

In Pocket speichern vorlesen Druckansicht 37 Kommentare lesen
Lesezeit: 7 Min.
Von
  • Isabel Drost
  • Dr. Oliver Diedrich
Inhaltsverzeichnis

In vielen Anwendungen stellen relationale Datenbanken seit Jahrzehnten die Basis zur persistenten Ablage von Daten aller Art. Die zugrunde liegenden Datenmodelle (Schemata) mit expliziten Constraints (vorgegebene Wertebereiche für Variablen) sorgen für Konsistenz in den Daten; Transaktionen und Locking gewährleisten atomare Zugriffe und einfache Verwendung durch mehrere Nutzer. Zudem steht mit SQL eine flexible Abfragesprache zur Verfügung, mit der sich vor allem im Data-Mining-Bereich unterschiedlichste Zusammenhänge untersuchen lassen.

Andrang beim NoSQL Meetup in Berlin

(Bild: Alexander Lang)

Mittlerweile entstehen allerdings immer mehr Applikationen, die zwar eine persistente Datenspeicherung brauchen, aber bereit sind, viele der Garantien eines relationalen Datenbank-Management-Systems (RDBMS) gegen höhere Performance einzutauschen. Ein typisches CMS beispielsweise, das ein Backend für die erstellten Inhalte braucht, wird selten eine flexible Abfragesprache brauchen – die notwendigen Abfragen stehen bereits zum Entwicklungszeitpunkt fest und werden danach selten verändert. Wichtiger als flexibler Abfragemöglichkeiten ist es, dass die Datenbank die wenigen vorgegeben Abfragen performant beantwortet, da sie tausende Mal pro Tag aufgerufen werden. Ein stark frequentierter Webshop wie amazon.de verzichtet gern auf DBMS-interne Locking-Mechanismen und implementiert die Behandlung von Konflikten im Client-Code, sofern dies zu einem deutlich höheren Durchsatz führt.

Bereits vor mehr als 20 Jahren wurde mit objektorientierten Datenbanken eine Alternative zur Datenspeicherung geschaffen, die sich stärker an objektorientierten Programmiersprachen anlehnt als an einem festen, unflexiblen Tabellenschema. In jüngster Vergangenheit hat die Entwicklung von sogenannten nicht-relationalen Datenbanken an Fahrt gewonnen. Sie legen üblicherweise Wert auf hohen Durchsatz bei der Verarbeitung von Daten und sind auf hoch parallele, weltweit verteilte Zugriffsszenarien optimiert. Üblicherweise sind diese Datenbanken schemafrei: Die Datenablage erfolgt über Schlüssel-Wert-Paare statt in vorgegebenen Tabellen, was Änderungen an der Struktur der Daten deutlich weniger aufwendig und schmerzhaft macht.

Am 22. Oktober fand in Berlin die erste NoSQL-Konferenz zum Thema nicht-relationale Datenbanken in Europa statt. Im newthinking store in der Tucholskystraße trafen sich über 70 Entwickler, Anwender und Enthusiasten von NoSQL-Datenbanken, darunter Vertreter aus Industrie (Xing, Peritor, nugg.ad, StudiVZ) und Forschung (ZIB Berlin, Beuth Hochschule Berlin). In sechs Vorträgen wurden die aktuellen Entwicklungen in NoSQL-Projekten vorgestellt.

Software-Entwicklerin Monika Moser

(Bild: Alexander Lang)

Den Anfang machte Monika Moser, Entwicklerin des transaktionalen Speicherlayers von Scalaris, jetzt Erlang/Ruby/Hadoop-Entwicklerin bei nugg.ad. In ihrem Vortrag analysierte sie das Thema Konsistenz in Key-Value-Stores. Nach Brewers CAP-Theorem können verteilte Systeme nur zwei der drei Eigenschaften Consistency, Availability und Partition Tolerance in verteilten Systemen garantieren. Agreement-Protokolle, die Konsistenz in hoch skalierbaren Systemen herstellen, werden laut Werner Vogels (Amazon) früher oder später zum Bottleneck. Mit Paxos stellte Monika ein fehlertolerantes, skalierbares Agreement-Protokoll vor, das in vielen Key-Value-Stores eingesetzt wird.

Mathias Meyer, Peritor, sprach über Redis

(Bild: Alexander Lang)

Anschließend stellte Mathias Meyer (Chief Cloud Officer bei Peritor Berlin) Redis vor, einen Key-Value-Store, der sich auf Geschwindigkeit und hohen Durchsatz konzentriert, dafür auf ACID-Garantien verzichtet. Redis arbeitet mit einem textbasierten Protokoll. Die Datenbank unterstützt Basisdatentypen wie Strings, Listen und Sets sowie atomare Operationen auf ihren Inhalten. Daten werden im Speicher gehalten, optional ist es möglich, die Daten persistent in einem Dump File zu speichern. Die Speicherintervalle sind zeitabhängig und in Abhängigkeit von der Menge an Änderungen, die auf der Datenbank durchgeführt wurden, einstellbar.

Redis lässt sich über eine Master-Slave-Konfiguration vertikal skalieren, über Zusatzbibliotheken ist eine horizontale Skalierung möglich. Laut Mathias eignet sich Redis vor allem zum Caching, für Worker Queues und zum Speichern statistischer Daten. Ungeeignet ist Redis für Szenarios, bei denen die Daten nicht in den Hauptspeicher passen.

Jan Lehnardt, CouchDB-Entwickler und -Consultant

(Bild: Alexander Lang)

Nach einer kurzen Pause stellte Jan Lehnardt CouchDB vor, eine so genannte dokumentenorientierte Datenbank, die vor kurzem in einer ersten Betaversion erschienen ist. Dokumente werden in CouchDB JSON-formatiert abgelegt. Der Zugriff erfolgt über eine RESTful HTTP API. CouchDB ist eine schemafreie Datenbank: Somit ist es einfach, Dokumente um zusätzliche Felder zu erweitern oder Dokumente, bei denen nicht alle Einträge gesetzt sind, effizient abzulegen. Die Abfrage von CouchDB-Dokumenten erfolgt über eine Map/Reduce-API, wie sie von funktionalen Programmiersprachen oder von Hadoop und Google bekannt ist.

CouchDB implementiert ein optimistisches Locking: Ein Nutzer, der ein Dokument ändern möchte, bekommt zusätzlich zum Dokumente dessen Revisionsnummer zum Abfragezeitpunkt. Diese Revisionsnummer muss beim Schreiben des neuen Dokuments mitgeliefert werden. Die Datenbank stellt darüber sicher, dass niemand aus Versehen Daten überschreibt, die parallel bearbeitet wurden. Dieser Mechanismus ist im Regelfall viel performanter als traditionelle Locking-Verfahren, im schlechtesten Fall genauso langsam wie pessimistic-locking-Implementierungen, die das Dokument sperren, bevor es verändert wird. CouchDBs Replikationsfeature, von Lotus Notes inspiriert, ermöglicht es, sowohl hochverfügbare, verteile Clusterlösungen zu konstruieren, als auch verteilte Offline-Web-Applikationen zu bauen, die jedem User die ultimative Kontrolle über persönliche Daten geben – CouchDB ist beispielsweise die Grundlage von Ubuntu One, einem Online-Speicher für Ubuntu-Anwender.

Martin Scholl von der global infinity GmbH erläuterte

(Bild: Alexander Lang)

Martin Scholl (global infinity GmbH) gab einen Überblick über die Datenbank Riak, ein verteilter Key-Value-Store mit einer HTTP/REST-API. Dokumente werden üblicherweise JSON-formatiert und nach Keys und Buckets (Namensräume für Dokumente) organisiert abgelegt. Riak unterstützt Map/Reduce zur Abfrage und Verarbeitung von Daten. Die Map/Reduce-Jobs werden parallel ausgeführt und lassen sich verketten. Riak unterstützt die Verteilung der Daten auf einem Cluster aus mehreren physikalischen Rechnern. Die Implementierung der Verteilung lehnt sich an Amazon Dynamo an.

Mathias Stearn, 10gen, präsentierte MongoDB

(Bild: Alexander Lang)

Anschließend präsentierte Mathias Stearn (10gen) MongoDB, eine Speicherlösung, die die besten Features von dokumenten- und objektorientierten Datenbanken vereint. MongoDB ist schemafrei. Daten werden in BSON (binary JSON) gespeichert, was Parsing- und Konvertierungsoverhead vermeidet. MongoDB bringt eine JavaScript-Shell mit, in der sich komplexe Queries formulieren und ausführen lassen, die mit der MongoDB-eigenen Abfragesprache nicht möglich sind. Neuere Versionen unterstützen auch Map/Reduce-basierte Abfragen. MongoDB unterstützt Master-Slave-Replikationen, eine Datenbank kann auch hier auf mehrere Server aufgeteilt werden. Momentan ist MongoDB bei dem Open-Source-Hoster Sourceforge im produktiven Einsatz.

Zum Abschluss gab Professor Stefan Edlich von der Beuth Hochschule Berlin einen Überblick zu aktuellen objektorientierten Datenbanken sowie deren vielfältigen Einsatzgebieten. Im Anschluss an die offizielle Vortragssession wechselten die Teilnehmer ins Cafe Aufsturz. Bei Bier und Wein konnten Entwickler und Anwender im persönlichen Gespräch so manche Frage klären.

Videoaufzeichnungen und die PDF-Dateien der Vorträge auf der NoSQL-Konferenz sind online verfügbar.

Wer mehr zum Thema performante Speicherung von Daten erfahren möchten, ist herzlich zu vom 2. bis 8. November in Oakland stattfindenden Apache Con US eingeladen. Neben zahlreichen Trainings und Vorträgen unter anderem zu CouchDB, Hadoop, Solr und Hbase wird dort das nächste NoSQL Meetup stattfinden.

Unterstützt wurde das erste NoSQL Meetup von Versant, Peritor, sociomatic, StudiVZ, SoundCloud , Cafe Aufsturz und dem newthinking store. (odi) (odi)