Database Reference
In-Depth Information
verwendet werden, verwerfen das Ergebnis der Mapper und Reducer, sobald
sie mit ihrer Arbeit fertig sind. Diese Systeme betrachten Mapreduce als Mit-
tel zum Zweck - etwas, was man ausführt, wenn die Notwendigkeit besteht,
wobei man jedesmal von Neuem beginnt. Nicht so bei CouchDB.
Sobald ein View in einem Design-Dokumentvorliegt,hältCouchDBdieZwi-
schenwerte der Mapper und Reducer fest, bis eine Änderung an einem Do-
kument diese Daten ungültig macht. Zu diesem Zeitpunkt führt CouchDB
inkrementell Mapper und Reducer aus, um die aktualisieren Daten zu ver-
arbeiten. Es beginnt dabei nicht von vorne, berechnet also nicht jedes Mal
alles neu. Das ist das geniale an CouchDB-Views. CouchDB ist in der La-
ge, Mapreduce als seinen primären Indexierungsmechanismus zu nutzen,
indem es Zwischenergebnisse nicht wegwirft.
Änderungen in CouchDB
CouchDBs inkrementeller Mapreduce-Ansatz ist sicherlich ein innovatives
Feature und eines von vielen, das CouchDB von anderen Datenbanken ab-
hebt. Das nächste Feature, das wir untersuchen wollen, ist die Changes-
API. Dieses Interface stellt einen Mechanismus zur Verfügung, bei dem Än-
derungen an einer Datenbank überwacht und Updates sofort vorgenommen
werden können.
Die Changes-API macht CouchDB zu einem perfekten Kandidaten für ein
Aufzeichnungssystem. Stellen Sie sich ein Multidatenbank-System vor, bei
dem Daten aus verschiedenen Richtungen eingehen und bei dem andere Sys-
teme auf dem neuesten Stand gehalten werden müssen (tatsächlich machen
wir genau das in Kapitel Abschnitt 8.4, Tag 3: Zusammenspiel mit anderen
Datenbanken , auf Seite 318). Beispiele sind Suchmaschinen, die über Luce-
ne oder ElasticSeach versorgt werden, oder eine über memcached oder Re-
dis implementierte Caching-Schicht. Sie könnten als Reaktion auf Änderun-
gen auch verschiedene Wartungs-Skripten anstoßen, die Aufgaben wir die
Verdichtung der Datenbank oder Backups übernehmen. Kurz gesagt eröff-
net diese einfache API eine Vielzahl unterschiedlichster Möglichkeiten. Heute
werden Sie lernen, wie man sie nutzt.
Um diese API zu nutzen, wollen wir einige einfache Client-Anwendungen mit
Node.js entwickeln. 6 Node.js ist ein serverseitige JavaScript-Plattform, die
auf der JavaScript-Engine V8 basiert (die auch in Googles Chrome-Browser
verwendet wird). Da Node.js eventgesteuert ist und der Code dafür in Java-
Script geschrieben wird, ist es für die Integration mit CouchDB die ideale
Lösung. Falls Sie Node.js noch nicht besitzen, wechseln Sie auf die Node.js-
Site und installieren Sie die neueste stabile Version (wir nutzen Version 0.6).
6. http://nodejs.org/
Search WWH ::




Custom Search