It would be great to do a clean implementation of Zab. We have added a lot crap 
for backward compatibility, and the reconfig stuff, although a great feature 
properly implemented, didn't improve the state of the code. Also, an 
implementation of the Zab protocol perhaps putting snapshots aside for v0.1, 
shouldn't take more than just a few weeks.  

If you do it openly say on github, then I volunteer to help.

-Flavio


On 03 Jun 2014, at 19:16, Michi Mutsuzaki <mi...@cs.stanford.edu> wrote:

> Rakesh, thank you for the links!
> 
> I agree with Flavio about keeping this a separate project. Having said
> that, at the point I'm not 100% sure whether the intern will implement
> ZAB completely from scratch, or start from a fork of the ZooKeeper
> code base. At this point I'm somewhat leaning towards using the
> ZooKeeper code base as a starting point. As Ivan pointed out, it's
> pretty ambitious to implement ZAB correctly in a short amount of time,
> and it would be good to have something demonstrable at the end of the
> internship.
> 
> 
> On Mon, Jun 2, 2014 at 9:19 AM, FPJ <fpjunque...@yahoo.com> wrote:
>> I have a few reasons for suggesting a separate project:
>> 
>> - I don't see a reason for tying the releases of an independent
>> implementation of Zab to ZooKeeper
>> - The set of developers (and committers) interested in an independent
>> implementation of  Zab might be different compared to ZooKeeper; it could
>> really be a separate community
>> - It really feels like parallel efforts along the lines of Curator and
>> BookKeeper, so I see it following similar steps
>> 
>> Regarding the effort of an intern, I guess it depends how far you want the
>> initial stretch to go. An initial implementation to contribute to Apache
>> followed by community activity might get it going.
>> 
>> -Flavio
>> 
>>> -----Original Message-----
>>> From: Ivan Kelly [mailto:iv...@apache.org]
>>> Sent: 02 June 2014 15:58
>>> To: dev@zookeeper.apache.org; mi...@cs.stanford.edu
>>> Cc: Ivan Kelly
>>> Subject: Re: intern project idea: decouple zab from zookeeper
>>> 
>>>> 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 :)
>>> I was thinking from the point of view that if you want to provide ZAB as a
>>> library, then the library will have to provide an RPC mechanism for
>> talking to
>>> other members of the quorum, and a means to persist updates to disk
>>> before responding, and _then_ provide a ZAB implementation somewhere
>>> in between. This doesn't seem much lighter than BK.
>>> 
>>> I think it's a worthwhile thing to pursue, but I disagree that a separate
>> project
>>> is a better way to doing it. If this is an intern project, expecting them
>> to
>>> reimplement ZAB might be a bit of a large ask (depending on the internship
>>> length and the intern themselves). An investigation into splitting the
>> user
>>> interface layer of zookeeper and ZAB seems itself to be a nice chunk to
>> work
>>> on, and it has the advantage that even if the changes don't get merged
>> into
>>> trunk, there will be a clearer picture as to why they can't be split.
>>> 
>>>> 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.
>>> You can read from a ledger while it is being written to, but right now
>> it's
>>> polling. Twitter are working on some changes to make it more notification
>>> like to reduce latency between the primary writing and the secondary
>>> reading.
>>> 
>>> -Ivan
>> 
>> 

Reply via email to