Dear Zookeeper developers, I have a feature request for allowing an embedded Zookeeper be run and connected to without using any system networking stack. All client-server communications would be handled internally of a single runtime. We at Unblu offer our product as a cloud service (orchestrated by Zookeeper) as well as an on-premises installable product. In the latter scenario we use a single embedded version of Zookeeper to orchestrate all the different embedded Version. This setup allows us to use the same mechanisms for service discovery and synchronization, whether we run in a distributed cloud setup or a single on-premises node.
For this use case we have implemented versions of ServerCnxn, ServerCnxnFactory and ClientCnxnSocket that handle client-server connections internally without using any server networking stack. I would very much love to commit a patch that implements this feature or open a jira issue to discuss this further, if there is interest from the Zookeeper community for such a feature. We think this feature offers several advantages over running Zookeeper locally or embedded via a networking stack: - less system resource usage (no need for additional networking overhead in what could be systems that already have a high load of networking IO) - simpler configuration and potentially better security: no need to configure any ports and network addresses, firewalls, loopback interfaces etc. (Our software runs in banking environments where security constraints often makes it difficult to (even) have loopback connections) - simpler Continuous Integration: Different Test Runs of our builds constantly interfere with each other due to ports being already in use and so forth. Additionally as this feature simply would be an extension to the current code base that wouldn't even be instantiated in the traditional server setup there would be almost no interference with the current code base and hence no threat to Zookeeper stability in traditional setups. It would be great if you could provide your thoughts and feedback on this and whether this is a welcome feature, in which case I would create a Jira Issue for further discussion and patch submission. Best regards, Matthias Amberg Developer Office: ++41 511 11 64 unblu inc. - Kernserstrasse 17 - 6060 Sarnen - Switzerland unblu makes websites personal http://www.unblu.com
