Hello Luke,

Thanks for the updated KIP, I've taken a look at it and still LGTM. Just a
couple minor comments in the wiki:

* Both `StickyAssignor` and `CooperativeStickyAssignor` that there's
already generation is encoded in user-data bytes, the difference is that
the `StickyAssignor`'s user bytes also encode the prev-owned partitions
while the `CooperativeStickyAssignor` relies on the prev-owned partitions
on the subscription protocol directly. So we can add the `StickyAssignor`
in your paragraph talking about `CooperativeStickyAssignor` as well.

* This sentence: "otherwise, we'll take the ownedPartitions as default
generation(-1)." does not read right to me, maybe need to rephrase a bit?


Guozhang

On Mon, Feb 7, 2022 at 7:36 PM Luke Chen <show...@gmail.com> wrote:

> Hi David,
>
> Thanks for your comments.
> I've updated the KIP to add changes in Subscription class.
>
> Thank you.
> Luke
>
> On Fri, Feb 4, 2022 at 11:43 PM David Jacot <dja...@confluent.io.invalid>
> wrote:
>
> > Hi Luke,
> >
> > Thanks for updating the KIP. I just have a minor request.
> > Could you fully describe the changes to the Subscription
> > public class in the KIP? I think that it would be better than
> > just saying that the generation will be added to id.
> >
> > Otherwise, the KIP LGTM.
> >
> > Thanks,
> > David
> >
> > On Mon, Nov 29, 2021 at 4:29 AM Luke Chen <show...@gmail.com> wrote:
> > >
> > > Hi devs,
> > > Welcome to provide feedback.
> > >
> > > If there are no other comments, I'll start a vote tomorrow.
> > >
> > > Thank you.
> > > Luke
> > >
> > >
> > > On Mon, Nov 22, 2021 at 4:16 PM Luke Chen <show...@gmail.com> wrote:
> > >
> > > > Hello David,
> > > >
> > > > For (3):
> > > >
> > > >
> > > >
> > > > * I suppose that we could add a `generation` field to the
> > JoinGroupRequest
> > > > instead to do the fencing that you describe while handling the
> > sentinel in
> > > > the assignor directly. If we would add the `generation` to the
> request
> > > > itself, would we need the `generation` in the subscription protocol
> as
> > > > well?*
> > > >
> > > > On second thought, I think this is not better than adding
> `generation`
> > > > field in the subscription protocol, because I think we don't have to
> > do any
> > > > generation validation on joinGroup request. The purpose of
> > > > `joinGroupRequest` is to accept any members to join this group, even
> > if the
> > > > member is new or ever joined or what. As long as we have the
> > generationId
> > > > in the subscription metadata, the consumer lead can leverage the info
> > to
> > > > ignore the old ownedPartitions (or do other handling), and the
> > rebalance
> > > > can still complete successfully and correctly. On the other hand, if
> > we did
> > > > the generation check on JoinGroupRequest, and return
> > `ILLEGAL_GENERATION`
> > > > back to consumer, the consumer needs to clear its generation info and
> > > > rejoin the group to continue the rebalance. It needs more
> > request/response
> > > > network and slow down the rebalance.
> > > >
> > > > So I think we should add the `generationId` field into Subscription
> > > > protocol to achieve what we want.
> > > >
> > > > Thank you.
> > > > Luke
> > > >
> > > > On Thu, Nov 18, 2021 at 8:51 PM Luke Chen <show...@gmail.com> wrote:
> > > >
> > > >> Hi David,
> > > >> Thanks for your feedback.
> > > >>
> > > >> I've updated the KIP for your comments (1)(2).
> > > >> For (3), it's a good point! Yes, we didn't deserialize the
> > subscription
> > > >> metadata on broker side, and it's not necessary to add overhead on
> > broker
> > > >> side. And, yes, I think we can fix the original issue by adding a
> > > >> "generation" field into `JoinGroupRequest` instead, and also add a
> > field
> > > >> into `JoinGroupResponse` in `JoinGroupResponseMember` field. That
> > way, the
> > > >> broker can identify the old member from `JoinGroupRequest`. And the
> > > >> assignor can also get the "generation" info via the `Subscription`
> > instance.
> > > >>
> > > >> I'll update the KIP to add "generation" field into
> `JoinGroupRequest`
> > and
> > > >> `JoinGroupResponse`, if there is no other options.
> > > >>
> > > >> Thank you.
> > > >> Luke
> > > >>
> > > >>
> > > >> On Tue, Nov 16, 2021 at 12:31 AM David Jacot
> > <dja...@confluent.io.invalid>
> > > >> wrote:
> > > >>
> > > >>> Hi Luke,
> > > >>>
> > > >>> Thanks for the KIP. Overall, I think that the motivation makes
> > sense. I
> > > >>> have a couple of comments/questions:
> > > >>>
> > > >>> 1. In the Public Interfaces section, it would be great if you could
> > put
> > > >>> the
> > > >>> end state not the current one.
> > > >>>
> > > >>> 2. Do we need to update the Subscription class to expose the
> > > >>> generation? If so, it would be great to mention it in the Public
> > > >>> Interfaces section as well.
> > > >>>
> > > >>> 3. You mention that the broker will set the generation if the
> > > >>> subscription
> > > >>> contains a sentinel value (-1). As of today, the broker does not
> > parse
> > > >>> the subscription so I am not sure how/why we would do this. I
> suppose
> > > >>> that we could add a `generation` field to the JoinGroupRequest
> > instead
> > > >>> to do the fencing that you describe while handling the sentinel in
> > the
> > > >>> assignor directly. If we would add the `generation` to the request
> > > >>> itself,
> > > >>> would we need the `generation` in the subscription protocol as
> well?
> > > >>>
> > > >>> Best,
> > > >>> David
> > > >>>
> > > >>> On Fri, Nov 12, 2021 at 3:31 AM Luke Chen <show...@gmail.com>
> wrote:
> > > >>> >
> > > >>> > Hi all,
> > > >>> >
> > > >>> > I'd like to start the discussion for KIP-792: Add "generation"
> > field
> > > >>> into
> > > >>> > consumer protocol.
> > > >>> >
> > > >>> > The goal of this KIP is to allow assignor/consumer
> > coordinator/group
> > > >>> > coordinator to have a way to identify the out-of-date
> > > >>> members/assignments.
> > > >>> >
> > > >>> > Detailed description can be found here:
> > > >>> >
> > > >>>
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=191336614
> > > >>> >
> > > >>> > Any feedback is welcome.
> > > >>> >
> > > >>> > Thank you.
> > > >>> > Luke
> > > >>>
> > > >>
> >
>


-- 
-- Guozhang

Reply via email to