Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. What resources should we support?
  2. How would we update them? What would be the security mechanisms used to access them?
  3. How would we ensure that the external resource has the correct version of the server list, especially, when concurrent server reconfigurations are in progress?

It is difficult to implement a generic mechanism in the client library to address these problems. There are many options for external resource (HTTP, DNS, NFS, LDAP, virtual IP, etc). From security mechanisms view point; there are many solutions as well and some of them could require tedious setup. Even if we resolve this problem, the process of updating a resource is not simple. The process that updates the external resources must ensure that only the most recent server list gets recorded at the resource. We could add the capability in the client library to record a union of the old and new server configuration at the URL, perform the reconfiguration, and then update the URL to with the most modified server list. However, the client library would also need to handle failures that may occur in this 3-step process. Further, if the application performs concurrent reconfigurations (which is supported by the server), then the client library would need to resolve race conditions to ensure that the result of last successful configuration is correctly recorded. In order to synchronize updates, the client library would need the external resource to support some atomic primitives (e.g., for locking and fencing).

...

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="de8c21cb52591d15-9aa3eb67-49a3474d-bf12a481-1892b0b8ee976074ab586180"><ac:parameter ac:name="">107</ac:parameter></ac:structured-macro> \[1\]  JIRA for dynamic cluster membership. [https://issues.apache.org/jira/browse/ZOOKEEPER-107]

Wiki Markup
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="b8cc5c7c16fa97d2-8e9be07a-4332437a-90058f73-279ced4dad34a4741355ddcd"><ac:parameter ac:name="">107wiki</ac:parameter></ac:structured-macro> \[2\] Cluster Membership. [https://cwiki.apache.org/confluence/display/ZOOKEEPER/ClusterMembership]