Database Reference
In-Depth Information
curl -X PUT http://localhost:8091/riak/animals \
-H "Content-Type: application/json" \
-d '{"props":{"w":2}}'
Schließlich können wir noch den R -Wert setzen. R ist die Anzahl der Knoten,
die gelesen werden müssen, um die Leseoperation erfolgreich abzuschließen.
Sie können einen Standard- R -Wert auf die gleiche Weise festlegen, wie wir das
für n _ val und w getan haben.
curl -X PUT http://localhost:8091/riak/animals \
-H "Content-Type: application/json" \
-d '{"props":{"r":3}}'
Aber Riak bietet eine noch flexiblere Lösung. Sie können die Zahl der zu
lesenden Knoten bei jedem Request in der URL als r -Parameter angeben.
curl http://localhost:8091/riak/animals/ace?r=3
Sie werden sich fragen, warum man etwas von mehr als einem Knoten lesen
sollte. Letzten Endes werden die von uns geschriebenen Werte auf N Knoten
repliziert und wir können jeden von ihnen lesen. Die Idee lässt sich visuell
einfacher vermitteln.
Nehmen wir an, wir legen unsere NRW-Werte mit {"n _ val":3, "r":2, "w":1}
(siehe Abbildung 9, Schlussendliche Konsistenz: W+R <= N ) fest. Damit rea-
giert unser System bei Schreiboperationen besser, weil nur an einen Knoten
geschrieben werden muss, bevor zurückgekehrt wird. Doch es besteht die
Möglichkeit, dass eine andere Operation etwas lesen will, bevor die Knoten
die Chance zur Synchronisation hatten. Selbst wenn wir von zwei Knoten
lesen, besteht die Möglichkeit, einen alten Wert empfangen zu haben.
version: B
version: A
W=1
R=2
N=3
version: B version: A version: A
Abbildung 9: Schlussendliche Konsistenz: W+R <= N
 
Search WWH ::




Custom Search