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