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