Thank you Flavio, it makes sense. Ibrahim -----Original Message----- From: Flavio P JUNQUEIRA [mailto:[email protected]] Sent: Sunday, October 04, 2015 05:43 م To: [email protected] Subject: RE: Zab Failure scenario
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 > > > > >
