Database Reference
In-Depth Information
{
"ok":true,
"id":" _ design/wherabouts",
"rev":"1-c08b557d676ab861957eaeb85b628d74"
}
Nun können wir Change-Requests nach Land filtern:
$ curl "http://localhost:5984/music/ _ changes?\
filter=wherabouts/by _ country&\
country=RUS"
{"results":[
{"seq":10,"id":"5987","changes":[{"rev":"1-2221be...a3b254"}]},
{"seq":57,"id":"349359","changes":[{"rev":"1-548bde...888a83"}]},
{"seq":73,"id":"364718","changes":[{"rev":"1-158d2e...5a7219"}]},
...
Mit Filtern können wir eine Art Pseudosharing einrichten, bei der nur eine
Teilmenge der Records zwischen den Knoten repliziert wird. Das ist nicht
das Gleiche wie bei echten Sharding-Systemen wie MongoDB oder HBase,
bietet aber die Möglichkeit, die Verarbeitung bestimmter Arten von Requests
aufzuteilen. Beispielsweise könnte Ihr CouchDB-Hauptserver separate Fil-
ter für Benutzer, Bestellungen, Nachrichten und Lager verwenden. Separate
CouchDB-Server könnten Änderungen basierend auf diesen Filtern replizie-
ren und jeder könnte einen anderen Aspekt des Unternehmens abdecken.
Da Filterfunktionen beliebigen JavaScript-Code enthalten können, lässt sich
auch eine komplexere Logik hineinpacken. Die Prüfung tief verschachtelter
Felder wäre mit dem vergleichbar, was wir mit Views gemacht haben. Sie
können auch reguläre Ausdrücke zu Testzwecken nutzen oder mathemati-
sche Vergleiche anstellen (z. B. nach Datum filtern). Es gibt sogar eine User-
Kontext-Property im Request-Objekt ( req.userCtx ), mit der Sie mehr über die
Request-Credentials herausfinden können.
Wir werden Node.js und die CouchDB-Changes-API in Kapitel 8, Redis ,auf
Seite 285 wiedersehen, wenn wir eine Multidatenbank-Anwendung entwi-
ckeln. Jetzt wollen wir uns aber dem letzten charakteristischen Feature von
CouchDB zuwenden, das wir hier behandeln wollen: der Replikation.
Daten replizieren bei CouchDB
Bei CouchDB dreht sich alles um asynchrone Umgebungen und die Langle-
bigkeit von Daten. Aus Sicht von CouchDB ist es am sichersten, Ihre Daten
überall zu speichern und es gibt Ihnen die Werkzeuge an die Hand, mit de-
nen Sie das erreichen können. Einige der Datenbanken, die wir uns ange-
sehen haben, verwenden einen einzelnen Master-Knoten, um die Konsistenz
zu gewährleisten. Wieder andere erreichen das über eine Mehrheit überein-
Search WWH ::




Custom Search