Hi Qian, The explanation is little more detailed and goes into the gurantees of ZooKeeper.
This presentation in http://wiki.apache.org/hadoop/ZooKeeper/ZooKeeperPresentations On zookeeper internals will give you some update on the theory and guarantees of ZooKeeper. If you could read through it, your question might get answered. If you still have questions please feel free to send an email to zookeeper-dev mahadev On 10/13/09 9:37 AM, "Qian Ye" <yeqian....@gmail.com> wrote: > Hi all: > I'm confused with a part of the implementation of SyncRequestProcessor. The > source code show that the transaction log of the proposal is committed in > the 'flush' function, > > private void flush(LinkedList<Request> toFlush) > > However, at this time, the proposal has NOT been committed by the Leader > yet. If this proposal cannot be committed for some Exception. The > transaction log will still exists on the Follower, won't it? Although the > proposals which haven't been committed would not take effect actually, if we > restart the whole system after that, will these uncommitted-transactions > start to take effect? > > Could any one explain it to me, please?