zhangmeng916 opened a new pull request #673: Add Helix Distributed lock based on zookeeper URL: https://github.com/apache/helix/pull/673 ### Issues - [X] My PR addresses the following Helix issues and references them in the PR description: (#[672](https://github.com/apache/helix/issues/672)) ### Description - [X] Here are some details about my PR, including screenshots of any UI changes: For distributed systems that use Helix, there is a common request for a mechanism to make sure different processes can cooperate correctly. For example, if two processes that run on different machines, or different networks, or even different data centers would like to work on the same resource, we must have a mutually exclusive lock to secure their operations do not step on each other. Only when a process acquires the lock, it can perform the operation. Therefore, we want to implement a distributed lock in Helix to benefit clients. This PR provides the Helix distributed lock interface and the basic implementation of a nonblocking lock based on Zookeeper. Further implementation on the details of the lock will be in later PR. ### Tests - [X] The following is the result of the "mvn test" command on the appropriate module: Waiting for time window to expire END TestParticipantMonitor START test at Mon Jan 06 12:19:14 PST 2020 START TestZKPathDataDumpTask_test at Mon Jan 06 12:19:14 PST 2020 END TestZKPathDataDumpTask_test at Mon Jan 06 12:19:14 PST 2020 END test at Mon Jan 06 12:19:14 PST 2020, took: 204ms. START testCapacityReached at Mon Jan 06 12:19:14 PST 2020 START TestZKPathDataDumpTask_testCapacityReached at Mon Jan 06 12:19:14 PST 2020 END testCapacityReached at Mon Jan 06 12:19:14 PST 2020, took: 221ms. START testBasic at Mon Jan 06 12:19:20 PST 2020 START TestHelixConfigAccessor_testBasic at Mon Jan 06 12:19:20 PST 2020 END TestHelixConfigAccessor_testBasic at Mon Jan 06 12:19:20 PST 2020 END testBasic at Mon Jan 06 12:19:20 PST 2020, took: 292ms. START testSetNonexistentParticipantConfig at Mon Jan 06 12:19:20 PST 2020 START TestHelixConfigAccessor_testSetNonexistentParticipantConfig at Mon Jan 06 12:19:20 PST 2020 3251077 [TestNGInvoker-testSetNonexistentParticipantConfig()] ERROR org.apache.helix.manager.zk.ZKUtil - Invalid instance setup, missing znode path: /TestHelixConfigAccessor_testSetNonexistentParticipantConfig/CONFIGS/PARTICIPANT/localhost_12918 3251092 [TestNGInvoker-testSetNonexistentParticipantConfig()] ERROR org.apache.helix.manager.zk.ZKUtil - Invalid instance setup, missing znode path: /TestHelixConfigAccessor_testSetNonexistentParticipantConfig/INSTANCES/localhost_12918/MESSAGES 3251092 [TestNGInvoker-testSetNonexistentParticipantConfig()] ERROR org.apache.helix.manager.zk.ZKUtil - Invalid instance setup, missing znode path: /TestHelixConfigAccessor_testSetNonexistentParticipantConfig/INSTANCES/localhost_12918/CURRENTSTATES 3251092 [TestNGInvoker-testSetNonexistentParticipantConfig()] ERROR org.apache.helix.manager.zk.ZKUtil - Invalid instance setup, missing znode path: /TestHelixConfigAccessor_testSetNonexistentParticipantConfig/INSTANCES/localhost_12918/STATUSUPDATES 3251093 [TestNGInvoker-testSetNonexistentParticipantConfig()] ERROR org.apache.helix.manager.zk.ZKUtil - Invalid instance setup, missing znode path: /TestHelixConfigAccessor_testSetNonexistentParticipantConfig/INSTANCES/localhost_12918/ERRORS END TestHelixConfigAccessor_testSetNonexistentParticipantConfig at Mon Jan 06 12:19:20 PST 2020 END testSetNonexistentParticipantConfig at Mon Jan 06 12:19:20 PST 2020, took: 110ms. Shut down zookeeper at port 2183 in thread main [INFO] Tests run: 890, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3,264.509 s - in TestSuite [INFO] [INFO] Results: [INFO] [INFO] Tests run: 890, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 54:28 min [INFO] Finished at: 2020-01-06T12:19:26-08:00 [INFO] ------------------------------------------------------------------------ ### Commits - [X] My commits all reference appropriate Apache Helix GitHub issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "[How to write a good git commit message](http://chris.beams.io/posts/git-commit/)": 1. Subject is separated from body by a blank line 1. Subject is limited to 50 characters (not including Jira issue reference) 1. Subject does not end with a period 1. Subject uses the imperative mood ("add", not "adding") 1. Body wraps at 72 characters 1. Body explains "what" and "why", not "how" ### Code Quality - [X] My diff has been formatted using helix-style.xml
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
