[
https://issues.apache.org/jira/browse/ZOOKEEPER-1931?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michi Mutsuzaki reassigned ZOOKEEPER-1931:
------------------------------------------
Assignee: Michi Mutsuzaki
> 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
> Assignee: 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)