Middleware oder Cluster
Einen generischen Ansatz verfolgt die Skalierungs-Middleware Gizzard [7]. Sie operiert zwischen einer Webanwendung, die Datenbankabfragen abschickt, und beliebigen Datenbanksystemen. Diese Vorgehensweise hat den Vorteil, dass sie im Gegensatz zum Consistent Hashing eine heterogene Partitionierung gestattet, sodass sich etwa häufig abgefragte Daten Performance-fördernd segmentieren lassen. Daneben kann man Forwarding-Strategien individuell festlegen.
Außerdem gestattet es Gizzard, Ressourcen dynamisch zum Cluster hinzuzufügen, was dem System Elastizität verleiht. Das System verhält sich sehr robust, da es beim Ausfall einer Partitionsreplik Requests dynamisch umleitet. Für den Fall, dass eine gesamte Partition nicht mehr erreichbar sein sollte, puffert Gizzard die ausstehenden Schreiboperationen in einem Transaktionsjournal.
Das jüngste und aktivste Upscaling-Projekt im Couch-DB-Umfeld ist jedoch Bigcouch [8], das sich stark an die konzeptionellen Ansätze aus dem Amazon Dynamo anlehnt. Dieser Couch-DB-Fork der Firma Cloudant arbeitet ebenfalls als elastischer Cluster und partitioniert die Daten auf Basis von Consistent-Hashing-Algorithmen. Daneben hält die Software View-Indizierung auf jeder Partition parallel vor, was zu deutlichen Performancegewinnen im Vergleich zu Standalone-Systemen führt. Neben der Gesamtanzahl von Knoten innerhalb eines Clusters steuern folgende vier Parameter Bigcouch dynamisch:
- Der Grad der Partitionierung als Anzahl »
Q« der Shards eines Clusters. - »
N« , die Anzahl redundanter Kopien eines jeden Dokuments. (Die Empfehlung lautet »N > 2« .) - Die Anzahl der Kopien, die gespeichert werden müssen, bevor ein Dokument "gespeichert" ist (»
W« ). »W« ist damit die Stellschraube für die Konsistenz der Daten. »W=N« bedeutet vollständige Konsistenz, »W=1« führt zu maximalem Durchsatz. - »
R« , die verlangte Anzahl identischer Dokumentrepliken, bevor ein Lese-Request erfüllt ist. Während »R=1« eine minimale Latenz bedeutet, erzwingt »R=N« wiederum eine vollständige Konsistenz aller Dokumentkopien.
Standardmäßig erscheint Bigcouch auf Port 5984 dem Benutzer wie eine einzelne Couch-DB-Instanz. Daneben existiert aber auf Port 5986 die Möglichkeit, zu Administrationszwecken die einzelnen Nodes des Clusters direkt anzusprechen.
Couch DB stellt sich in drei verschiedenen Ausprägungen dar. Einerseits lädt es zum Downscaling auf Mobilgeräten ein, weil es geringe Ansprüche an die Hardware stellt. Zweitens erlaubt die Datenbank die horizontale Skalierung wie in früheren Lotus-Notes-Anwendungsszenarien. Die Web-2.0-Skalierung begegnet hoher Last und sehr großen Datenvolumina.
Der magische "Glue", der diese unterschiedlichen Ausprägungen von Dezentralität möglich macht, besteht in der Fähigkeit von Couch DB, nicht nur Daten, sondern auch das Design von Anwendungen einfach und sehr robust zu replizieren.
Ausblick
Das Couch-DB-Universum zeigt sich dynamisch und innovativ. Mittel- bis langfristig gibt es aber noch einiges Potenzial auszuschöpfen. Die Möglichkeit, beispielsweise mit einem Form-Builder extrem einfach Couch-DB-Anwendungen für kleine und mittlere Unternehmen nutzbar zu machen, könnte einen bedeutenden Schub für Akzeptanz und Verbreitung der Software bewirken.
Kurzfristig ist für die kommende Version 1.1 mit einer verbesserten externen Programmierschnittstelle zu rechnen. Damit soll sich Couch DB auch als Reverse-Proxy konfigurieren lassen und externe Prozesse verwalten können. (mhu)
Infos
- Couch DB: http://couchdb.apache.org
- Oliver Frommel, "Mal ausspannen": http://www.linux-magazin.de/Online-Artikel/CouchDB
- Android bei Couch One: http://www.couchone.com/page/android
- Couch App: http://www.couchapp.org
- Couch-DB-Lounge http://tilgovi.github.com/couchdb-lounge/
- Pillow: https://github.com/khellan/Pillow
- Gizzard: https://github.com/twitter/gizzard
- Bigcouch: https://github.com/cloudant/bigcouch
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 4 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





