Hi Steven,

I think it would be useful to be able to subscribe yourself on updates of
> reassignment changes.


I agree this would be really useful, but, to the extent I understand the
networking underpinnings of the admin client, it might be difficult to do
well in practice. Part of the problem is that you might "set a watch" (to
borrow the ZK terminology) via one broker (or the controller), only for
that broker to fail (or the controller be re-elected). Obviously you can
detect the loss of connection and set a new watch via a different broker
(or the new controller), but that couldn't be transparent to the user,
because the AdminClient doesn't know what changed while it was
disconnected/not watching.

Another issue is that to avoid races you really need to combine fetching
the current state with setting the watch (as is done in the native
ZooKeeper API). I think there are lots of subtle issues of this sort which
would need to be addressed to make something reliable.

In the mean time, ZooKeeper already has a (proven and mature) API for
watches, so there is, in principle, a good workaround. I say "in principle"
because in the KIP-236 proposal right now the /admin/reassign_partitions
znode is legacy and the reassignment is represented by
/admin/reassigments/$topic/$partition. That naming scheme for the znode
would make it harder for ZooKeeper clients like yours because such clients
would need to set a child watch per topic. The original proposal for the
naming scheme was /admin/reassigments/$topic-$partition, which would mean
clients like yours would need only 1 child watch. The advantage of
/admin/reassigments/$topic/$partition is it scales better. I don't
currently know how well ZooKeeper copes with nodes with many children, so
it's difficult for me weigh those two options, but I would be happy to
switch back to /admin/reassigments/$topic-$partition if we could reassure
ourselves it would scale OK to the reassignment sizes would people need in
practice.

Overall I would prefer not to tackle something like this in *this* KIP,
though it could be something for a future KIP. Of course I'm happy to hear
more discussion about this too!

Cheers,

Tom


On 15 December 2017 at 18:51, Steven Aerts <steven.ae...@gmail.com> wrote:

> Tom,
>
>
> I think it would be useful to be able to subscribe yourself on updates of
> reassignment changes.
> Our internal kafka supervisor and monitoring tools are currently subscribed
> to these changes in zookeeper so they can babysit our clusters.
>
> I think it would be nice if we could receive these events through the
> adminclient.
> In the api proposal, you can only poll for changes.
>
> No clue how difficult it would be to implement, maybe you can piggyback on
> some version number in the repartition messages or on zookeeper.
>
> This is just an idea, not a must have feature for me.  We can always poll
> over
> the proposed api.
>
>
> Regards,
>
>
>    Steven
>
>
> Op vr 15 dec. 2017 om 19:16 schreef Tom Bentley <t.j.bent...@gmail.com>:
>
> > Hi,
> >
> > KIP-236 lays the foundations for AdminClient APIs to do with partition
> > reassignment. I'd now like to start discussing KIP-240, which adds APIs
> to
> > the AdminClient to list and describe the current reassignments.
> >
> >
> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-
> 240%3A+AdminClient.listReassignments+AdminClient.describeReassignments
> >
> > Aside: I have fairly developed ideas for the API for starting a
> > reassignment, but I intend to put that in a third KIP.
> >
> > Cheers,
> >
> > Tom
> >
>

Reply via email to