zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ibrahim El-sanosi (PGR)" <i.s.el-san...@newcastle.ac.uk>
Subject RE: Zab Failure scenario
Date Sun, 04 Oct 2015 15:27:22 GMT
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: user@zookeeper.apache.org
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:fpj@apache.org]
Sent: Sunday, September 27, 2015 05:21 م
To: user@zookeeper.apache.org
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)" < i.s.el-sanosi@newcastle.ac.uk> 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
>
>
Mime
View raw message