Database Reference
In-Depth Information
Speichern Sie diese Datei in dem von Ihnen festgelegten js _ source _ dir -Ver-
zeichnis. Da wir Änderungen am Server-Kern vornehmen, müssen wir alle
Entwicklungs-Server über das restart -Argument neu starten.
$ dev/dev1/bin/riak restart
$ dev/dev2/bin/riak restart
$ dev/dev3/bin/riak restart
Riak sucht nach allen Dateien mit der Endung .js und lädt sie in den Spei-
cher. Sie können nun die precommit -Eigenschaft eines Buckets nutzen, um
den Namen der JavaScript- Funktion (nicht den Dateinamen) festzulegen.
curl -X PUT http://localhost:8091/riak/animals \
-H "content-type:application/json" \
-d '{"props":{"precommit":[{"name" : "good _ score"}]}}'
Wir wollen unseren neuen Hook nun ausprobieren, indem wir eine Bewer-
tung größer 4 setzen. Unser Pre-Commit-Hook erzwingt eine Bewertung zwi-
schen 1 und 4, weshalb der folgende Versuch mit einem Fehler endet:
curl -i -X PUT http://localhost:8091/riak/animals/bruiser \
-H "Content-Type: application/json" -d '{"score" : 5}'
HTTP/1.1 403 Forbidden
Content-Type: text/plain
Content-Length: 25
Score must be 1 to 4
Sie erhalten den Code 403 Forbidden zurück, sowie eine Fehlermeldung im
Klartext, die wir im „fail“-Feld zurückgegeben haben. Wenn Sie mit GET den
bruiser -Wert abrufen, bleibt die Bewertung bei 3. Wenn Sie versuchen, die
Bewertung auf 2 zu setzen, werden Sie mehr Erfolg haben.
Post-Commit ähnelt dem Pre-Commit, wird aber erst ausgeführt, wenn der
Commit erfolgreich war. Wir überspringen das an dieser Stelle, weil Post-
Commit-Hooks nur in Erlang geschrieben werden können. Erlang-Entwick-
ler führt die Online-Dokumentation durch die Installation eigener Module.
Tatsächlich können Sie mit Erlang auch Mapreduce-Funktionen schreiben.
Doch wir wollen uns jetzt anderen vorgefertigten Modulen und Erweiterun-
gen zuwenden.
Riak erweitern
Riak wird mit verschiedenen Erweiterungen ausgeliefert, die standardmä-
ßig deaktiviert sind, aber Features bieten, die Sie durchaus nützlich finden
könnten.
Search WWH ::




Custom Search