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
