zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benjamin Reed <br...@apache.org>
Subject Re: Question on Zab's Synchronization phase design
Date Thu, 23 Feb 2012 16:03:04 GMT
the formal proof of zab is at
http://research.yahoo.com/files/YL-2010-007.pdf and it does reference
this atomic action a lot. (it is invariant 24.) note, the protocol is
restated in terms used in the code in:

as far as the implementation goes, we write the history and the epoch
to disk in the same step, but we do require the function to be atomic
to preserve the atomicity. the function is Follower.syncWithLeader
when the NEWLEADER message is processed. we would need to use some
simple logging if we wanted to remove the atomicity assumption of


On Thu, Feb 23, 2012 at 5:21 AM, de Souza Medeiros Andre
<andre.medeiros@aalto.fi> wrote:
> Hi all,
> I hope this list is appropriate to place my question regarding one of the most recent
papers on ZooKeeper's Zab protocol: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5958223&tag=1
> When Phase II (Synchronization) of the protocol is described, in step f.2.1 there are
two actions performed "atomically": setting f.a to e' and accepting every transaction in the
initial history given by the leader. My question is: what precisely does "atomically" mean?
Does it mean that either none or both are executed? Then, do the core properties depend on
the atomic execution of those actions? I've read the proofs in that paper and apparently the
atomic execution of those actions is not mentioned. How does this relate to Zab protocol in
the code? I haven't yet found a synchronization code that sets f.a (currentEpoch in the code)
"atomically" together with the history (through TRUNC, DIFF, or SNAP messages).
> Thanks for the attention,
> Andre Medeiros

View raw message