Database Reference
In-Depth Information
Sie wählt einen Mittelwert und aktualisiert die Bewertung mit dem Wert 3.
vclock: bob[1], rakshith[1], jane[2]
value: {score : 3}
Nachdem der Konflikt aufgelöst wurde, erhält jeder, der danach auf die Daten
zugreift, den aktuellsten Wert zurück.
Vektoruhren in der Praxis
Lassen Sie uns das obige Beispiel-Szenario mit Riak durchgehen.
Bei diesem Beispiel wollen wir alle in Konflikt stehenden Versionen sehen,
damit wir sie manuell auflösen können. Wir halten mehrere Versionen vor,
indem wir die Eigenschaft allow _ mult im animals -Bucket setzen. Schlüssel
mit mehreren Werten werden Geschwister-(sibling-) Werte genannt.
$ curl -X PUT http://localhost:8091/riak/animals \
-H "Content-Type: application/json" \
-d '{"props":{"allow _ mult":true}}'
Hier trägt Bob Bruiser mit der Bewertung 3 und der Client-ID bob in das
System ein.
$ curl -i -X PUT http://localhost:8091/riak/animals/bruiser \
-H "X-Riak-ClientId: bob" \
-H "Content-Type: application/json" \
-d '{"score" : 3}'
Jane und Rakshith rufen beide Bruisers Daten ab, die von Bob angelegt wur-
den (die Header-Informationen sind wesentlich umfassender; wir beschrän-
ken uns hier auf die Vektoruhr).
Beachten Sie, dass Riak Bobs vclock kodiert hat. Dahinter verbirgt sich aber
ein Client und eine Version (sowie ein Zeitstempel, d. h., Ihre Werte werden
andere sein als hier zu sehen).
$ curl -i http://localhost:8091/riak/animals/bruiser?return _ body=true
X-Riak-Vclock: a85hYGBgzGDKBVIs7NtEXmUwJTLmsTI8FMs5zpcFAA==
{"score" : 3}
Jane aktualisiert die Bewertung auf 2 und fügt die Vektoruhr mit ein, die sie
mit Bobs Version empfangen hat. Damit signalisiert sie Riak, dass ihr Wert
Bobs Version aktualisiert.
Search WWH ::




Custom Search