Hi Ivan,

The use case this project is going after is to durably replicate
in-memory state. I think this project can differentiate itself from
BookKeeper.

1. BookKeeper is pretty heavyweight, as you need to deploy ZooKeeper
and bookies. I think there are use cases where you don't need the
horizontal scalability BookKeeper provides, and you prefer to have a
light-weight library for replicating state. ZooKeeper is one such
example :)
2. Please correct me if I'm wrong, but BookKeeper is not designed for
maintaining multiple in-memory replicas. A ledger can't be opened for
reading if it's already open for writing, and you need to recover by
restoring from a snapshot and replaying log entries if the writer goes
down.
3. ZOOKEEPER-30, which I wasn't initially aware of, is another
motivation. I think there is a value in having a common interface for
consensus algorithms so that services can plug in different
implementations. This makes it easier to benchmark and test
correctness of various implementations.


On Sun, Jun 1, 2014 at 3:05 AM, Ivan Kelly <iv...@apache.org> wrote:
> On Sat, May 31, 2014 at 02:29:34PM -0700, Michi Mutsuzaki wrote:
>> I'm hosting an intern this summer. One project I've been thinking
>> about is to decouple zab from zookeeper. There are many use cases
>> where you need a quorum based replication, but the hierarchical data
>> model doesn't work well. A smallish (~1GB?) replicated key-value store
>> with millions of entires is one such example. The goal of the project
>> is to decouple the consensus algorithm (zab) from the data model
>> (zookeeper) more cleanly so that the users can define their own data
>> models and use zab to replicate the data.
> So you want a replicated log which give you the guarantees of zab. How
> would this be very different from Bookkeeper?
>
> -Ivan

Reply via email to