Database Reference
In-Depth Information
$ curl -i -X PUT http://localhost:8091/riak/animals/bruiser \
-H "X-Riak-ClientId: jane" \
-H "X-Riak-Vclock: a85hYGBgzGDKBVIs7NtEXmUwJTLmsTI8FMs5zpcFAA==" \
-H "Content-Type: application/json" \
-d '{"score" : 2}'
Da Jane und Rakshith Bobs Daten gleichzeitig abgerufen haben, sendet er
sein Update (mit dem Wert 4) ebenfalls mit Bobs Vektoruhr.
$ curl -i -X PUT http://localhost:8091/riak/animals/bruiser \
-H "X-Riak-ClientId: rakshith" \
-H "X-Riak-Vclock: a85hYGBgzGDKBVIs7NtEXmUwJTLmsTI8FMs5zpcFAA==" \
-H "Content-Type: application/json" \
-d '{"score" : 4}'
Wenn Jane die Bewertung erneut abruft, sieht sie nicht wie erwartet einen
Wert, sondern einen HTTP-Code für mehrere Wahlmöglichkeiten und einen
Body mit zwei „Geschwister-“ (Sibling-)Werten.
$ curl http://localhost:8091/riak/animals/bruiser?return _ body=true
Siblings:
637aZSiky628lx1YrstzH5
7F85FBAIW8eiD9ubsBAeVk
Riak speichert diese Versionen in einemMultipart-Format, d. h., sie kann das
gesamte Objekt abrufen, indem sie diesen MIME-Typ akzeptiert.
$ curl -i http://localhost:8091/riak/animals/bruiser?return _ body=true \
-H "Accept: multipart/mixed"
HTTP/1.1 300 Multiple Choices
X-Riak-Vclock: a85hYGBgyWDKBVHs20Re...OYn9XY4sskQUA
Content-Type: multipart/mixed; boundary=1QwWn1ntX3gZmYQVBG6mAZRVXlu
Content-Length: 409
--1QwWn1ntX3gZmYQVBG6mAZRVXlu
Content-Type: application/json
Etag: 637aZSiky628lx1YrstzH5
{"score" : 4}
--1QwWn1ntX3gZmYQVBG6mAZRVXlu
Content-Type: application/json
Etag: 7F85FBAIW8eiD9ubsBAeVk
{"score" : 2}
--1QwWn1ntX3gZmYQVBG6mAZRVXlu--
Beachten Sie, dass die gezeigten „Geschwister“ HTTP-Etags (die Riak vtags
nennt) für spezifische Werte sind. Nebenbei bemerkt können Sie den vtag-
Parameter in der URL nutzen, um nur diese Version abzurufen: curl http://
localhost:8091/riak/animals/bruiser?vtag=7F85FBAIW8eiD9ubsBAeVk gibt
{"score" : 2} zurück. Janes Aufgabe ist es nun, diese Information zu nut-
Search WWH ::




Custom Search