Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ZOOKEEPER-3922: The introduction of the oracle, a failure detector. #109

Merged
merged 1 commit into from
Nov 2, 2022

Conversation

anuragmadnawat1
Copy link
Owner

The introduction of the oracle makes ZooKeeper fault-tolerant in two-node systems.

The major changes are:

  1. QuorumPeerConfig.java
  • The changes allow users to enable the oracle and provide essential information.
  • Create QuorumOracleMaj if configured.
  1. FastLeaderElection.java
  • A re-check mechanism checks the current received votes once the timeout expires.
  • Add another case when receiving a LEADING notification for a node to locate the existed leader in two-node systems.
  1. Leader.java
  • Add a re-validation of outstanding proposals mechanism after the only follower goes away
  • Add another handling case when the quorum is not maintainable. It queries the Oracle for maintaining the quorum along.
  1. QuorumVerifier.java
  • Add methods for QuorumOracleMaj.java
  1. QuorumOracleMaj.java (This is a new file.)
  • A sub-class of QuorumMaj
  • It default reads a file that contains a binary value to behave as an Oracle.

Author: Ching-Chan Lee [email protected]

Reviewers: Benjamin Reed [email protected], Michael Han [email protected]

Closes apache#1444 from chingchan1996/ZOOKEEPER-3922

The introduction of the oracle makes ZooKeeper fault-tolerant in two-node systems.

The major changes are:
1. QuorumPeerConfig.java
- The changes allow users to enable the oracle and provide essential information.
- Create QuorumOracleMaj if configured.
2. FastLeaderElection.java
- A re-check mechanism checks the current received votes once the timeout expires.
- Add another case when receiving a LEADING notification for a node to locate the existed leader in two-node systems.
3. Leader.java
- Add a re-validation of outstanding proposals mechanism after the only follower goes away
- Add another handling case when the quorum is not maintainable. It queries the Oracle for maintaining the quorum along.
4. QuorumVerifier.java
- Add methods for QuorumOracleMaj.java
5. QuorumOracleMaj.java (This is a new file.)
- A sub-class of QuorumMaj
- It default reads a file that contains a binary value to behave as an Oracle.

Author: Ching-Chan Lee <[email protected]>

Reviewers: Benjamin Reed <[email protected]>, Michael Han <[email protected]>

Closes apache#1444 from chingchan1996/ZOOKEEPER-3922
@anuragmadnawat1 anuragmadnawat1 merged commit c845f89 into master Nov 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant