Database Reference
In-Depth Information
zen, um ein sinnvolles Update vorzunehmen. Sie entscheidet sich für den
Durchschnitt der beiden Bewertungen und aktualisiert den Wert mit 3. Da-
bei verwendet Sie die angegebene Vektoruhr, um den Konflikt aufzulösen.
$ curl -i -X PUT http://localhost:8091/riak/animals/bruiser?return _ body=true \
-H "X-Riak-ClientId: jane" \
-H "X-Riak-Vclock: a85hYGBgyWDKBVHs20Re...OYn9XY4sskQUA" \
-H "Content-Type: application/json" \
-d '{"score" : 3}'
Wenn Bob und Rakshith jetzt bruiser s Informationen abrufen, erhalten sie
die aufgelöste Bewertung.
$ curl -i http://localhost:8091/riak/animals/bruiser?return _ body=true
HTTP/1.1 200 OK
X-Riak-Vclock: a85hYGBgyWDKBVHs20Re...CpQmAkonCcHFM4CAA==
{"score" : 3}
Alle zukünftigen Abfragen liefern die Bewertung 3 zurück.
Zeit wächst weiter an
Sie werden bemerkt haben, dass die Vektoruhr anwächst, während die Cli-
ents Werte aktualisieren. Das ist ein fundamentales Problem von Vektoruh-
ren, das auch die Riak-Entwickler erkannt haben. Sie haben Vektoruhren
dahingehend erweitert, dass sie mit der Zeit bereinigt werden, um ihre Grö-
ße klein zu halten. Das Tempo, in dem Riak alte Vektoruhr-Werte aussortiert,
wird über Bucket-Eigenschaften festgelegt, die man sich (zusammen mit al-
len anderen Eigenschaften) ansehen kann, indem man das Bucket abruft.
$ curl http://localhost:8091/riak/animals
Sie werden einige der folgenden Eigenschaften sehen, die festlegen, wie Riak
die Uhr beschneidet, bevor sie zu groß wird.
"small _ vclock":10,"big _ vclock":50,"young _ vclock":20,"old _ vclock":86400
small_vclock und big_vclock bestimmen die minimale und maximale Länge
des Vektors, während young_vclock und old_vclock das minimale und maxi-
male Alter einer vclock festlegen.
Mehr über Vektoruhren und ihre Beschneidung finden Sie online. 12
12. http://wiki.basho.com/Vector-Clocks.html
Search WWH ::




Custom Search