Hi, I am trying to understand how zookeeper handles the following scenarios.
a) When a leader sends a proposal to a follower, does the follower just log
the proposal to its persistent store or is the state change actually
applied,
but not committed yet? If it is the former, what is the guarantee that the
follower can indeed perform the state change? i.e., how will the follower
handle errors during state change.
b) Since a leader commits after reaching a quorum, what is the guarantee
that the
follower who did not reply to the quorum can receive the state change
successfully
and apply the state change?
c) Are there cases where states in an ensemble can diverge and if so, how is
this handled to keep state change consistent across all the servers?
If you have any thoughts, please let me know. Thanks very much for your
time.
-Umesh
a) When a leader sends a proposal to a follower, does the follower just log
the proposal to its persistent store or is the state change actually
applied,
but not committed yet? If it is the former, what is the guarantee that the
follower can indeed perform the state change? i.e., how will the follower
handle errors during state change.
b) Since a leader commits after reaching a quorum, what is the guarantee
that the
follower who did not reply to the quorum can receive the state change
successfully
and apply the state change?
c) Are there cases where states in an ensemble can diverge and if so, how is
this handled to keep state change consistent across all the servers?
If you have any thoughts, please let me know. Thanks very much for your
time.
-Umesh