commit | 815c8f2130b8b43e11abe52b226707f707a93581 | [log] [tgz] |
---|---|---|
author | Mate Szalay-Beko <szalay.beko.mate@gmail.com> | Fri Nov 29 14:49:13 2019 +0100 |
committer | Andor Molnar <andor@apache.org> | Fri Nov 29 14:49:13 2019 +0100 |
tree | 108acbef6dd13762c7ae081cf481a9ec84752a2b | |
parent | 8e8905069f4bff670c0492fe9e28ced0f86bca00 [diff] |
ZOOKEEPER-3188: Improve resilience to network This PR is the rebase of the [previous pull request](https://github.com/apache/zookeeper/pull/730), so all the kudos should go to the original authors... In [ZOOKEEPER-3188](https://issues.apache.org/jira/browse/ZOOKEEPER-3188) we add ability to specify several addresses for quorum operations. Also added reconnection attempts if connection to leader lost. In this PR I rebased the changes on the current master, resolving some minor conflicts with: - [ZOOKEEPER-3296](https://issues.apache.org/jira/browse/ZOOKEEPER-3296): Explicitly closing the sslsocket when it failed handshake to prevent issue where peers cannot join quorum - [ZOOKEEPER-3320](https://issues.apache.org/jira/browse/ZOOKEEPER-3320): Leader election port stop listen when hostname unresolvable for some time - [ZOOKEEPER-3385](https://issues.apache.org/jira/browse/ZOOKEEPER-3385): Add admin command to display leader - [ZOOKEEPER-3386](https://issues.apache.org/jira/browse/ZOOKEEPER-3386): Add admin command to display voting view - [ZOOKEEPER-3398](https://issues.apache.org/jira/browse/ZOOKEEPER-3398): Learner.connectToLeader() may take too long to time-out I still want to test the feature manually (e.g. using docker containers with multiple virtual networks / interfaces). The steps to the manual test could be recorded in the [google docs](https://docs.google.com/document/d/1iGVwxeHp57qogwfdodCh9b32P2_kOQaJZ2GDo7j36fI/edit?usp=sharing) as well. Also I think we could add a few more unit tests where we are using multiple addresses. The current tests are using a single address only. Also the Zookeeper documentation needs to be changed (e.g. by a follow-up Jira?) to promote the new feature and the new config format (possibly including also the admin command documentation in relation with [ZOOKEEPER-3386](https://issues.apache.org/jira/browse/ZOOKEEPER-3386) and [ZOOKEEPER-3461](https://issues.apache.org/jira/browse/ZOOKEEPER-3461)) Author: Mate Szalay-Beko <szalay.beko.mate@gmail.com> Author: Mate Szalay-Beko <mszalay@cloudera.com> Reviewers: eolivelli@apache.org, andor@apache.org Closes #1048 from symat/ZOOKEEPER-3188 and squashes the following commits: 3c6fc52d7 [Mate Szalay-Beko] Merge remote-tracking branch 'apache/master' into ZOOKEEPER-3188 356882d46 [Mate Szalay-Beko] ZOOKEEPER-3188: document new configuration format for using multiple addresses 45b6c0fdb [Mate Szalay-Beko] Merge remote-tracking branch 'apache/master' into ZOOKEEPER-3188 4b6bcea48 [Mate Szalay-Beko] ZOOKEEPER-3188: MultiAddress unit tests for Quorum TLS and Kerberos/Digest authentication 40bc44c23 [Mate Szalay-Beko] Merge remote-tracking branch 'apache/master' into ZOOKEEPER-3188 f875f5c67 [Mate Szalay-Beko] Merge remote-tracking branch 'apache/master' into ZOOKEEPER-3188 31805e79b [Mate Szalay-Beko] Merge remote-tracking branch 'apache/master' into ZOOKEEPER-3188 0f95678ca [Mate Szalay-Beko] ZOOKEEPER-3188: skip unreachable addresses when Learner connects to Leader e232c55da [Mate Szalay-Beko] ZOOKEEPER-3188: fix flaky unit MultiAddress unit test e892d8d8e [Mate Szalay-Beko] Merge remote-tracking branch 'apache/master' into ZOOKEEPER-3188 6f2ab755f [Mate Szalay-Beko] Merge remote-tracking branch 'apache/master' into ZOOKEEPER-3188 2eedf2687 [Mate Szalay-Beko] ZOOKEEPER-3188: fix PR commits; handle case when Leader can not bind to port on startup 483d2fc9c [Mate Szalay-Beko] Merge remote-tracking branch 'apache/master' into ZOOKEEPER-3188 a5d6bcb97 [Mate Szalay-Beko] ZOOKEEPER-3188: support for dynamic reconfig + add more unit tests ed31d2ce9 [Mate Szalay-Beko] ZOOKEEPER-3188: better shutdown for executors (following PR comments) 8713a5bbf [Mate Szalay-Beko] ZOOKEEPER-3188: add fixes for PR comments 05eae83c0 [Mate Szalay-Beko] Merge remote-tracking branch 'apache/master' into ZOOKEEPER-3188 e823af4b1 [Mate Szalay-Beko] Merge remote-tracking branch 'origin/master' into ZOOKEEPER-3188 de7bad2a6 [Mate Szalay-Beko] Merge remote-tracking branch 'origin/master' into ZOOKEEPER-3188 da98a8da6 [Mate Szalay-Beko] ZOOKEEPER-3188: fix JDK-13 warning 5bd1f4e2c [Mate Szalay-Beko] ZOOKEEPER-3188: supress spotbugs warning 42a52a688 [Mate Szalay-Beko] ZOOKEEPER-3188: improve based on code review comments 6c4220a0d [Mate Szalay-Beko] ZOOKEEPER-3188: fix SendWorker.asyncValidateIfSocketIsStillReachable 5b22432c1 [Mate Szalay-Beko] ZOOKEEPER-3188: fix LeaderElection to work with multiple election addresses 7bfbe7e5c [Mate Szalay-Beko] ZOOKEEPER-3188: Improve resilience to network
For the latest information about Apache ZooKeeper, please visit our website at:
and our wiki, at:
https://cwiki.apache.org/confluence/display/ZOOKEEPER
Packaging/release artifacts
Either downloaded from https://zookeeper.apache.org/releases.html or found in zookeeper-assembly/target directory after building the project with maven.
apache-zookeeper-[version].tar.gz Contains all the source files which can be built by running: mvn clean install To generate an aggregated apidocs for zookeeper-server and zookeeper-jute: mvn javadoc:aggregate (generated files will be at target/site/apidocs) apache-zookeeper-[version]-bin.tar.gz Contains all the jar files required to run ZooKeeper Full documentation can also be found in the docs folder
As of version 3.5.5, the parent, zookeeper and zookeeper-jute artifacts are deployed to the central repository after the release is voted on and approved by the Apache ZooKeeper PMC:
https://repo1.maven.org/maven2/org/apache/zookeeper/zookeeper/
We always welcome new contributors to the project! See How to Contribute for details on how to submit patch through pull request and our contribution workflow.