Database Reference
In-Depth Information
abgelegt werden. Der Vorteil ist, dass Riak nur den Schlüssel abfragen muss,
um die entsprechende vnode zu finden, wenn wir wissen wollen, auf welchem
Server der Schlüssel liegt. Genauer gesagt, wandelt Riak den Hash in eine
Liste potentieller vnodes um und verwendet die erste.
Nodes/Writes/Reads
Riak ermöglicht die Kontrolle über Lese- und Schreiboperationen im Cluster
durch die Veränderung dreier Werte: N, Wund R. N ist die Anzahl der Knoten,
auf die eine Schreiboperation repliziert wird, d. h. die Anzahl der Kopien im
Cluster. W ist die Anzahl der Knoten, an die erfolgreich geschrieben werden
muss, bevor eine Erfolgsmeldung zurückgegeben wird. Ist W kleiner als N,
wird die Schreiboperation selbst dann als erfolgreich betrachtet, wenn Riak
den Wert noch kopiert. R ist schließlich die Anzahl der Knoten, die benötigt
werden, um einen Wert erfolgreich einlesen zu können. Ist R größer als die
Zahl der verfügbaren Kopien, schlägt der Request fehl.
Sehen wir uns das etwas genauer an.
Wenn wir ein Objekt in Riak einfügen, haben wir die Möglichkeit, den Wert
über mehrere Knoten zu replizieren. Der Vorteil ist, dass eine Kopie auf einem
anderen Server zur Verfügung steht, wenn ein Server abstürzt. Die Bucket-
Eigenschaft (Property) n _ val enthält die Anzahl von Knoten, auf die ein Wert
repliziert werden soll (der N-Wert). Voreingestellt ist 3 . Wir können die Eigen-
schaften eines Buckets ändern, indem wir einen neuen Wert in das props -
Objekt schreiben. Nachfolgend setzen wir bei animals den n _ val auf 4:
$ curl -X PUT http://localhost:8091/riak/animals \
-H "Content-Type: application/json" \
-d '{"props":{"n _ val":4}}'
N ist einfach die Anzahl von Knoten, die schlussendlich den richtigen Wert
enthalten. Das bedeutet nicht, dass wir darauf warten müssen, bis der Wert
auf alle Knoten kopiert wurde, um zurückkehren zu können. Manchmal soll
der Client sofort zurückkehren und Riak die Daten im Hintergrund replizie-
ren lassen. Manchmal wollen wir aber auch warten, bis Riak (nur um sicher-
zugehen) auf alle N repliziert hat, bevor wir zurückkehren.
Wir können den Wert W auf die Anzahl erfolgreicher Schreiboperationen set-
zen, bevor die Operation als erfolgreich abgeschlossen wird. Auch wenn wir
die Daten schlussendlich an vier Knoten schreiben, können wir W auf 2 set-
zen und die Schreiboperation kehrt nach nur zwei Kopien zurück. Die beiden
restlichen werden im Hintergrund repliziert.
Search WWH ::




Custom Search