Acks aren't logged and neither are commits. A prospective leader commits the initial state of the epoch using its own state as the proposed initial state. In your scenario, txn 10 is part of the initial proposed state.
-Flavio On 4 Oct 2015 4:28 pm, "Ibrahim El-sanosi (PGR)" < [email protected]> wrote: > Sorry, there is a type error in previous email. > > Does zxid = 10 commit because there are acknowledgments from a quorum of > pervious epoch, or the prospective leader needs to commit any proposals in > transaction logs (regardless of having quorums of ACKS from pervious epoch > or not) ? (remember we are taking about proposals that have NOT committed > yet and located in transaction logs). > > Following scenarios apply to above questions: > > Assume we have 3-server cluster. Leader (L), follower1 (F1) and follower2 > (F2). The scenario is as follows: > 1. Leader sends a proposal with Zxid = 10. > 2. F2 crashes before receiving P10. F1 logs, sends an ACK and > crashes. > > Assume L has not received F1' ACK. As there is no quorum supporting L, L > moves to Leader election (Fast Leader Election, FLE) to find a quorum and > elects new leader. After sometime F2 wakes up and form a quorum with L. In > FLE, a process that has the most recent zxid becomes a prospective leader, > resulting in L (pervious leader) becomes a prospective leader, because of > having zxid =10. > > What happen then? Does zxid = 10 commit eventually before the end of > synchronization phase or discard? (remember, zxid =10 did not get a quorum > of ACKS from pervious epoch) > > Regards, > > Ibrahim > > -----Original Message----- > From: Ibrahim El-sanosi (PGR) > Sent: Sunday, October 04, 2015 03:48 م > To: [email protected] > Subject: RE: Zab Failure scenario > > Does zxid = 10 commit because there are acknowledgments from a quorum of > pervious epoch, or the prospective leader needs to commit any proposals in > transaction logs (regardless of having quorums of ACKS from pervious epoch > or not) ? (remember we are taking about proposals that have committed yet > and located in transaction logs). > > Following scenarios apply to above questions: > > Assume we have 3-server cluster. Leader (L), follower1 (F1) and follower2 > (F2). The scenario is as follows: > 1. Leader sends a proposal with Zxid = 10. > 2. F2 crashes before receiving P10. F1 logs, sends an ACK and > crashes. > > As there is no quorum supporting L, L moves to Leader election (Fast > Leader Election, FLE) to find a quorum and elects new leader. After > sometime F2 wakes up and form a quorum with L. In FLE, a process that has > the most recent zxid becomes a prospective leader, resulting in L > (pervious leader) becomes a prospective leader, because of zxid =10. > > What happen then? Does zxid = 10 commit eventually before the end of > synchronization phase or discard? > > Regards, > > Ibrahim > > > > -----Original Message----- > From: Flavio P JUNQUEIRA [mailto:[email protected]] > Sent: Sunday, September 27, 2015 05:21 م > To: [email protected] > Subject: Re: Zab Failure scenario > > In 3, it is not exactly a pending proposal, but if the leader has 10 in > its log, then it will make sure 10 is committed by the end of the > synchronisation phase and before it becomes established. > > I'm not sure why you are assuming 3.4.6, though. Why is it relevant for > this question? > > -Flavio > On 27 Sep 2015 4:51 pm, "Ibrahim El-sanosi (PGR)" < > [email protected]> wrote: > > > Assume we use ZooKeeper 3.4.6 and we have 3-server cluster. Leader > > (L), > > follower1 (F1) and follower2 (F2). The scenario is as following: > > > > 1. Leader sends a proposal with Zxid = 10. > > > > 2. F2 crashes before receiving P10. F1 logs, sends an ACK and > > crashes. > > As there is no quorum supporting L, L moves to LOOKING phase to find > > a quorum and elects new leader. After sometime F1 wakes up and form a > > quorum with L. Both F1 and L (pervious leader) have same state (zxid > > =10 in their log). Therefore the process which has the large myid will > > be a leader, assume L (pervious leader) has larger myid, So, > > > > 3. L sends a pending proposal with Zxid =10 to F1. > > > > 4. F1 logs and sends an ACK. > > > > 5. Upon receiving ACK, L commits p10 and sends an ACK. > > > > > > > > (1) Is this true or false? > > > > (2) Regards, > > Ibrahim > > > > >
