Michi Mutsuzaki created ZOOKEEPER-1931:
------------------------------------------
Summary: intern project idea: decouple zab from zookeeper
Key: ZOOKEEPER-1931
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1931
Project: ZooKeeper
Issue Type: New Feature
Reporter: Michi Mutsuzaki
The goal of this project is to define an interface for replication protocol and
implement the interface using ZAB. This project will most likely be done
outside of ZooKeeper to avoid impacting the stability of the ZooKeeper code
base, but I'm opening a JIRA here to gauge interest and get feedback from
ZooKeeper community.
There are 2 main motivations for this project:
1. There are many use cases that need a replication protocol like ZAB, but
ZooKeeper's hierarchical data model doesn't work well. It's difficult to use
ZAB without ZooKeeper with the way ZooKeeper code is currently structured.
2. It's valuable to have a common interface for replication protocol to build
services on. This allows you to plug in different implementations for
benchmarking and testing for correctness. This point is related to ZOOKEEPER-30.
The project is roughly broken into 4 pieces:
1. Define the interface for replication protocol. It's very important to get
the interface right. I'd appreciate if you guys can help define the interface.
2. Implement the interface with single node ZAB.
3. Implement a simple reference service, something like a key-value store or a
benchmark tool.
4. Implement ZAB, either from scratch or by refactoring / curving off
unnecessary parts from the ZooKeeper code base.
I have some questions:
- How do things like session tracker and dynamic reconfiguration fit into this?
Should they be separate optional interfaces?
- Where should this project belong to? Is it worth making this an incubator
project, or should I just put the code on github? I'd like to make it easy for
people from different organizations to collaborate (in terms of license grant
and all) from the beginning.
--
This message was sent by Atlassian JIRA
(v6.2#6252)