I'm thinking of a case where the broker uses a plugin that does not use
rack ids to determine client locality, in that case the consumer might
arrive at the wrong decision based on rack ids.

-Artem

On Wed, Nov 23, 2022 at 3:54 AM Rajini Sivaram <rajinisiva...@gmail.com>
wrote:

> Hi Artem,
>
> Thanks for reviewing the KIP. The client doesn't rely on a particular
> replica assignment logic in the broker. Instead, it matches the actual rack
> assignment for partitions from the metadata with consumer racks. So there
> is no assumption in the client implementation about the use of
> RackAwareReplicaSelector in the broker. Did I misunderstand your concern?
>
> Regards,
>
> Rajini
>
>
> On Tue, Nov 22, 2022 at 11:03 PM Artem Livshits
> <alivsh...@confluent.io.invalid> wrote:
>
> > Hi Rajini,
> >
> > Thank you for the KIP, the KIP looks good to match
> RackAwareReplicaSelector
> > behavior that is available out-of-box.  Which should probably be good
> > enough in practice.
> >
> > From the design perspective, though, RackAwareReplicaSelector is just one
> > possible plugin, in theory the broker could use a plugin that leverages
> > networking information to get client locality or some other way, so it
> > seems like we're making an assumption about broker replica selection in
> the
> > default assignment implementation.  So I wonder if we should use a
> separate
> > plugin that would be set when RackAwareReplicaSelector is set, rather
> than
> > assume broker behavior in the client implementation.
> >
> > -Artem
> >
> > On Wed, Nov 16, 2022 at 8:08 AM Jun Rao <j...@confluent.io.invalid>
> wrote:
> >
> > > Hi, David and Rajini,
> > >
> > > Thanks for the explanation. It makes sense to me now.
> > >
> > > Jun
> > >
> > > On Wed, Nov 16, 2022 at 1:44 AM Rajini Sivaram <
> rajinisiva...@gmail.com>
> > > wrote:
> > >
> > > > Thanks David, that was my understanding as well.
> > > >
> > > > Regards,
> > > >
> > > > Rajini
> > > >
> > > > On Wed, Nov 16, 2022 at 8:08 AM David Jacot
> > <dja...@confluent.io.invalid
> > > >
> > > > wrote:
> > > >
> > > > > Hi Jun,
> > > > >
> > > > > We don't need to bump any RPC requests. The subscription is
> > serialized
> > > > > (including its version) and included as bytes in the RPCs.
> > > > >
> > > > > Best,
> > > > > David
> > > > >
> > > > > On Tue, Nov 15, 2022 at 11:42 PM Jun Rao <j...@confluent.io.invalid
> >
> > > > wrote:
> > > > > >
> > > > > > Hi, Rajini,
> > > > > >
> > > > > > Thanks for the updated KIP. Just another minor comment. It would
> be
> > > > > useful
> > > > > > to list all RPC requests whose version needs to be bumped because
> > of
> > > > the
> > > > > > changes in ConsumerProtocolSubscription.
> > > > > >
> > > > > > Jun
> > > > > >
> > > > > > On Tue, Nov 15, 2022 at 3:45 AM Rajini Sivaram <
> > > > rajinisiva...@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > Hi David,
> > > > > > >
> > > > > > > Sorry, I was out of office and hence the delay in responding.
> > > Thanks
> > > > > for
> > > > > > > reviewing the KIP and answering Viktor's question (thanks for
> the
> > > > > review,
> > > > > > > Viktor).
> > > > > > >
> > > > > > > Responses below:
> > > > > > > 01)  I was in two minds about adding new assignors, because as
> > you
> > > > > said,
> > > > > > > user experience is better if assignors used racks when
> available.
> > > But
> > > > > I was
> > > > > > > a bit concerned about changing the algorithm in existing
> > > applications
> > > > > which
> > > > > > > were already configuring `client.rack`. It felt less risky to
> add
> > > new
> > > > > > > assignor implementations instead. But we can retain existing
> > logic
> > > if
> > > > > a)
> > > > > > > rack information is not available and b) racks have all
> > partitions.
> > > > So
> > > > > the
> > > > > > > only case where logic will be different is when rack
> information
> > is
> > > > > > > available because consumers chose to use `client.rack` to
> benefit
> > > > from
> > > > > > > improved locality, but racks only have a subset of partitions.
> It
> > > > seems
> > > > > > > reasonable to make existing assignors rack-aware in this case
> to
> > > > > improve
> > > > > > > locality. I have updated the KIP. Will wait and see if there
> are
> > > any
> > > > > > > objections to this change.
> > > > > > >
> > > > > > > 02) Updated 1), so existing assignor classes will be used.
> > > > > > >
> > > > > > > 03) Updated the KIP to use version 3, thanks.
> > > > > > >
> > > > > > > If there are no concerns or further comments, I will start
> voting
> > > > later
> > > > > > > today.
> > > > > > >
> > > > > > > Thank you,
> > > > > > >
> > > > > > > Rajini
> > > > > > >
> > > > > > >
> > > > > > > On Fri, Nov 4, 2022 at 9:58 AM David Jacot
> > > > <dja...@confluent.io.invalid
> > > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Hi Viktor,
> > > > > > > >
> > > > > > > > I can actually answer your question. KIP-848 already includes
> > > rack
> > > > > > > > awareness in the protocol. It is actually the other way
> around,
> > > > this
> > > > > > > > KIP takes the idea from KIP-848 to implement it in the
> current
> > > > > > > > protocol in order to realize the benefits sooner. The new
> > > protocol
> > > > > > > > will take a while to be implemented.
> > > > > > > >
> > > > > > > > Best,
> > > > > > > > David
> > > > > > > >
> > > > > > > > On Fri, Nov 4, 2022 at 10:55 AM David Jacot <
> > dja...@confluent.io
> > > >
> > > > > wrote:
> > > > > > > > >
> > > > > > > > > Hi Rajini,
> > > > > > > > >
> > > > > > > > > Thanks for the KIP. I have a few questions/comments:
> > > > > > > > >
> > > > > > > > > 01. If I understood correctly, the plan is to add new
> > assignors
> > > > > which
> > > > > > > > > are rack aware. Is this right? I wonder if it is a
> judicious
> > > > choice
> > > > > > > > > here. The main drawback is that clients must be configured
> > > > > correctly
> > > > > > > > > in order to get the benefits. From a user experience
> > > perspective,
> > > > > it
> > > > > > > > > would be much better if we would only require our users to
> > set
> > > > > > > > > client.rack. However, I understand the argument of keeping
> > the
> > > > > > > > > existing assignors as-is in order to limit the risk but it
> > also
> > > > > means
> > > > > > > > > that we will have to maintain multiple assignors with a
> > > somewhat
> > > > > > > > > similar core logic (within a rack). What do you think?
> > > > > > > > >
> > > > > > > > > 02. If we proceed with new rack-aware assignors, we should
> > > > mention
> > > > > > > > > their fully qualified names in the KIP as they will become
> > part
> > > > of
> > > > > our
> > > > > > > > > public interfaces.
> > > > > > > > >
> > > > > > > > > 03. KIP-792 has already introduced version 2 of the
> > > subscription.
> > > > > The
> > > > > > > > > KIP is accepted but the PR is not merged yet. This KIP
> should
> > > use
> > > > > > > > > version 3.
> > > > > > > > >
> > > > > > > > > Best,
> > > > > > > > > David
> > > > > > > > >
> > > > > > > > > On Thu, Nov 3, 2022 at 5:58 PM Viktor Somogyi-Vass
> > > > > > > > > <viktor.somo...@cloudera.com.invalid> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Rajini,
> > > > > > > > > >
> > > > > > > > > > If I understand correctly, the client.rack config would
> > stay
> > > > > > > supported
> > > > > > > > > > after KIP-848 but does it expand the scope of that KIP
> too
> > > with
> > > > > this
> > > > > > > > > > config? I mean that currently you propose
> > > > > > > ConsumerProtocolSubscription
> > > > > > > > to
> > > > > > > > > > be used but this protocol won't be available and we need
> to
> > > > > transfer
> > > > > > > > the
> > > > > > > > > > config to the coordinator via other means. Should this be
> > > added
> > > > > to
> > > > > > > > that KIP?
> > > > > > > > > >
> > > > > > > > > > Thanks,
> > > > > > > > > > Viktor
> > > > > > > > > >
> > > > > > > > > > On Wed, Nov 2, 2022 at 9:50 PM Rajini Sivaram <
> > > > > > > rajinisiva...@gmail.com
> > > > > > > > >
> > > > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > > Hi Jun,
> > > > > > > > > > >
> > > > > > > > > > > Thank you for the review. Yes, we should add rack id to
> > > > > > > > Subscription, had
> > > > > > > > > > > missed that part. Updated the KIP, thank you for
> pointing
> > > > that
> > > > > out!
> > > > > > > > > > >
> > > > > > > > > > > Regards,
> > > > > > > > > > >
> > > > > > > > > > > Rajini
> > > > > > > > > > >
> > > > > > > > > > > On Wed, Nov 2, 2022 at 7:06 PM Jun Rao
> > > > > <j...@confluent.io.invalid>
> > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > > Hi, Rajini,
> > > > > > > > > > > >
> > > > > > > > > > > > Thanks for the KIP. Just one comment.
> > > > > > > > > > > >
> > > > > > > > > > > > Should we add rackId to
> GroupSubscription.Subscription
> > > for
> > > > > each
> > > > > > > > member?
> > > > > > > > > > > >
> > > > > > > > > > > > Thanks,
> > > > > > > > > > > >
> > > > > > > > > > > > Jun
> > > > > > > > > > > >
> > > > > > > > > > > > On Wed, Nov 2, 2022 at 4:57 AM Rajini Sivaram <
> > > > > > > > rajinisiva...@gmail.com>
> > > > > > > > > > > > wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > > Hi all,
> > > > > > > > > > > > >
> > > > > > > > > > > > > I have submitted KIP-881 to implement rack-aware
> > > > partition
> > > > > > > > assignment
> > > > > > > > > > > for
> > > > > > > > > > > > > consumers:
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-881%3A+Rack-aware+Partition+Assignment+for+Kafka+Consumers
> > > > > > > > > > > > > .
> > > > > > > > > > > > > It adds rack id to the consumer group protocol to
> > > > propagate
> > > > > > > rack
> > > > > > > > > > > > > information so that rack-aware assignors can be
> added
> > > to
> > > > > > > benefit
> > > > > > > > from
> > > > > > > > > > > > > locality.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Feedback and suggestions are welcome!
> > > > > > > > > > > > >
> > > > > > > > > > > > > Thank you,
> > > > > > > > > > > > >
> > > > > > > > > > > > > Rajini
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to