You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@zookeeper.apache.org by Jordan Zimmerman <jz...@netflix.com> on 2011/12/05 00:07:05 UTC
consistency question
Does a write operation imply a sync()? I'm reading the double barrier recipe and it appears to assume that it does. Node n is created and then getChildren is called. The recipe requires that the getChildren() reflect all nodes that have create their node n. Am I misreading the recipe?
-JZ
Re: consistency question
Posted by Flavio Junqueira <fp...@yahoo-inc.com>.
Hi Jordan, A write operation implies a sync, but not the other way
around. Write operations are forwarded to the leader, which executes
the operation and propagates the change in the form of a transaction
using Zab. When the leader commits the transaction, it sends commit
messages to the followers, which essentially flushes the channel
sbetween the leader and the followers. The sync operation, different
from a regular write operation, simply flushes the channel and it does
not induce a change to the zookeeper state or a Zab broadcast.
Keeping the above in mind and that operations of a client are executed
in FIFO order, a getChildren issued after W is such that the
getChildren must reflect W and all the updates that have been ordered
by Zab before W.
-Flavio
On Dec 5, 2011, at 12:07 AM, Jordan Zimmerman wrote:
> Does a write operation imply a sync()? I'm reading the double
> barrier recipe and it appears to assume that it does. Node n is
> created and then getChildren is called. The recipe requires that the
> getChildren() reflect all nodes that have create their node n. Am I
> misreading the recipe?
>
> -JZ
flavio
junqueira
research scientist
fpj@yahoo-inc.com
direct +34 93-183-8828
avinguda diagonal 177, 8th floor, barcelona, 08018, es
phone (408) 349 3300 fax (408) 349 3301