hi DJ

> How about we use another Jira to add “SHARE” to GroupProtocol and change
return type of ModernGroup#protocolType?

This is not my comment ... sorry for the incorrect quote :(

> A member in a classic group should report "classic".

I completely agree. However, in this case, ClassicGroupDescription#protocol
returns 'consumer', while ClassicGroupDescription#members[x].protocol
returns 'classic'. This inconsistency feels a bit strange to me.

Best,
Chia-Ping


David Jacot <dja...@confluent.io.invalid> 於 2024年11月22日 週五 下午6:51寫道:

> Hi Chia,
>
> > > LM4: I agree it’s better to use a type like GroupProtocol enum, but I
> would like to align the format with kafka-groups.sh.
> How about we use another Jira to add “SHARE” to GroupProtocol and change
> return type of ModernGroup#protocolType?
>
> My understanding is that `GroupProtocol` is used to drive the config of the
> `Consumer`. Hence adding `Share` seems wrong to me. Or are you referring to
> another GroupProtocol enum? Perhaps GroupType enum?
>
> > In fact, I'm wondering if we should even add 'protocol' to
> MemberDescription,
> since the field has different values between classic and consumer groups—it
> shows 'consumer' in classic groups, whereas it shows 'classic' in consumer
> groups. Yes, it seems like a typo, but it's true. This inconsistency feels
> confusing to me. For example, users call Admin#describeConsumerGroups and
> see that a member has the 'consumer' protocol when it's in a classic group.
> Then, if the group is upgraded to a consumer group, calling
> Admin#describeConsumerGroups again shows the protocol as 'classic' for the
> same member.
>
> I don't fully follow your comment so please excuse me if I say something
> wrong.
>
> I think that it should work as follows:
> * A member in a classic group should report "classic".
> * A member using the consumer protocol in a consumer group should report
> "consumer".
> * A member using the classic protocol in a consumer group should report
> "classic".
> * A member in a share group should report "share".
>
> > If all we want to do is distinguish classic members in the
> ConsumerGroupDescription, then we shouldn't modify the common
> MemberDescription structure. Instead, we could add a collection to
> ConsumerGroupDescription to trace members using the classic protocol, which
> would allow us to enrich the output of command-line tools.
>
> Personally, I believe that using different collections per protocol types
> is not necessary. A field in the member is more than enough.
>
> Best,
> DJ
>
> On Fri, Nov 22, 2024 at 12:01 PM Chia-Ping Tsai <chia7...@gmail.com>
> wrote:
>
> > hi PoAn
> >
> > > LM4: I agree it’s better to use a type like GroupProtocol enum, but I
> > would like to align the format with kafka-groups.sh.
> > How about we use another Jira to add “SHARE” to GroupProtocol and change
> > return type of ModernGroup#protocolType?
> >
> > MemberDescription is also used by ClassicGroupDescription, and in classic
> > groups, the protocol can be an arbitrary string, so we can't use an enum.
> >
> > In fact, I'm wondering if we should even add 'protocol' to
> > MemberDescription,
> > since the field has different values between classic and consumer
> groups—it
> > shows 'consumer' in classic groups, whereas it shows 'classic' in
> consumer
> > groups. Yes, it seems like a typo, but it's true. This inconsistency
> feels
> > confusing to me. For example, users call Admin#describeConsumerGroups and
> > see that a member has the 'consumer' protocol when it's in a classic
> group.
> > Then, if the group is upgraded to a consumer group, calling
> > Admin#describeConsumerGroups again shows the protocol as 'classic' for
> the
> > same member.
> >
> > If all we want to do is distinguish classic members in the
> > ConsumerGroupDescription, then we shouldn't modify the common
> > MemberDescription structure. Instead, we could add a collection to
> > ConsumerGroupDescription to trace members using the classic protocol,
> which
> > would allow us to enrich the output of command-line tools.
> > Best,
> > Chia-Ping
> >
> > PoAn Yang <yangp...@gmail.com> 於 2024年11月22日 週五 下午3:46寫道:
> >
> > > Hi Lianet / Jeff,
> > >
> > > Thanks for the review.
> > >
> > > LM5: The kafka-share-groups.sh also uses “—describe” to show offsets
> > > information.
> > > Change to use “—describe —state —verbose” to show group level
> information
> > > in kafka-share-groups.sh.
> > >
> > > LM6: Update the example.
> > >
> > > LM7: Add a description to mention “—verbose” is a new option in
> > > ShareGroupCommandOptions.
> > >
> > > JK2: Yes, add the statement about format change for ASSIGNMENT value.
> > >
> > > Thanks,
> > > PoAn
> > >
> > > > On Nov 22, 2024, at 7:35 AM, Jeff Kim <jeffkb...@apache.org> wrote:
> > > >
> > > > Hi PoAn,
> > > >
> > > > JK2: Can we state in the KIP that we will reformat the existing
> > > > classic group's `--members --verbose` as well, specifically the
> > > > "ASSIGNMENT" column to include the topic name?
> > > >
> > > > Thanks!
> > > >
> > > > On 2024/11/21 14:33:37 "Lianet M." wrote:
> > > >> Thanks for the updates PoAn!
> > > >>
> > > >> LM6. Just a nit, under the --describe --state --verbose the header
> is
> > > fine
> > > >> but the example is still missing the --state argument.
> > > >>
> > > >> LM7. Under the Proposed changes for kafka-share-groups.sh, should we
> > > >> clearly mention that the KIP adds a new --verbose option? I think
> it's
> > > >> confusing because it's presented as if the option already exists and
> > > we're
> > > >> only changing the output (which is the case for
> kafka-consumer-groups
> > > but
> > > >> not for kafka-share-groups)
> > > >>
> > > >> That's all on my side. Thanks!
> > > >>
> > > >> Lianet
> > > >>
> > > >> On Wed, Nov 20, 2024 at 11:12 PM PoAn Yang <yangp...@gmail.com>
> > wrote:
> > > >>
> > > >>> Hi Lianet / Jeff,
> > > >>>
> > > >>> Thanks for review and suggestions.
> > > >>>
> > > >>> LM4: At group level, the protocol field is from
> > > ModernGroup#protocolType.
> > > >>> It’s a string.
> > > >>> The value is defined in different places like
> > ShareGroup#PROTOCOL_TYPE
> > > and
> > > >>> ConsumerProtocol#PROTOCOL_TYPE.
> > > >>> In KIP-1043 <
> > > >>>
> > >
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=305171038#KIP1043:Administrationofgroups-kafka-groups.sh
> > > >,
> > > >>> the kafka-groups.sh also shows protocol like “classic” /
> “consumer” /
> > > >>> “share”.
> > > >>> I agree it’s better to use a type like GroupProtocol enum, but I
> > would
> > > >>> like to align the format with kafka-groups.sh.
> > > >>> How about we use another Jira to add “SHARE” to GroupProtocol and
> > > change
> > > >>> return type of ModernGroup#protocolType?
> > > >>>
> > > >>> LM5 / JK1: Sorry, I misunderstood LM3, so I deleted —state in the
> > > title.
> > > >>> You’re correct. I would like to use `—describe —state —verbose` to
> > show
> > > >>> group level information.
> > > >>> For `—describe —verbose`, it will show output as same as `—describe
> > > >>> —offsets —verbose`,
> > > >>> because `—describe` also shows output as same as `—describe
> > —offsets`.
> > > >>>
> > > >>> JK2: Yes, I only use consumer group in the sample output, but the
> > > classic
> > > >>> group will use the same format as well.
> > > >>>
> > > >>> Thanks,
> > > >>> PoAn
> > > >>>
> > > >>>> On Nov 21, 2024, at 8:28 AM, Jeff Kim <jeffkb...@apache.org>
> wrote:
> > > >>>>
> > > >>>> Hi PoAn,
> > > >>>>
> > > >>>> Thanks for the KIP. I have some questions:
> > > >>>>
> > > >>>> JK1: (Realized this is similar to LM5) On `--describe --verbose`
> > > >>> proposed changes - doesn't `--describe $group` default to printing
> > the
> > > >>> offsets? Perhaps you're referring to the `--state` argument? Also,
> > > would
> > > >>> that mean the default `--describe $group --verbose` command would
> not
> > > print
> > > >>> the added field to `--offsets verbose` (leader-epoch) or would it?
> > > >>>>
> > > >>>> JK2: Looking at ConsumerGroupCommand.java, the existing
> "ASSIGNMENT"
> > > >>> column under `--members --verbose` does group the topic partitions
> by
> > > topic
> > > >>> but does not prefix the grouping with the topic name like you're
> > > proposal:
> > > >>> "my_topic:0,1;new_topic:0,1". Should we do apply the same format
> for
> > > the
> > > >>> classic group as well?
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>>> On 2024/11/20 21:32:41 "Lianet M." wrote:
> > > >>>>> Hello PoAn, just of couple more minor comments:
> > > >>>>>
> > > >>>>> LM4. Regarding the new “protocol” field added to
> MemberDescription.
> > > >>> Should
> > > >>>>> we consider reusing the existing GroupProtocol enum instead of
> > > String?
> > > >>>>> (It’s the one we use from the consumer side to refer to the
> > protocol
> > > in
> > > >>>>> use, just missing Share I notice).
> > > >>>>>
> > > >>>>> LM5. Regarding the change to the output for
> kafka-consumer-groups,
> > > the
> > > >>>>> command shown does not include the —state option, but the output
> > > shows
> > > >>>>> state info (state, #members, epochs). I would guess that we want
> to
> > > >>> modify
> > > >>>>> the output only when we describe a group with the —state —verbose
> > > >>> option,
> > > >>>>> is my understanding right? If my understanding is right we’re
> just
> > > >>> missing
> > > >>>>> adding the —state in the example, and the KIP does not introduce
> > any
> > > >>>>> changes to the —describe —verbose option. (If not, it would mean
> a
> > > >>> bigger
> > > >>>>> change to the output of —describe —verbose which I expect is not
> > the
> > > >>>>> intention?)
> > > >>>>>
> > > >>>>> Thanks!
> > > >>>>>
> > > >>>>> Lianet
> > > >>>>>
> > > >>>>>
> > > >>>>> On Wed, Nov 20, 2024 at 2:12 AM PoAn Yang <yangp...@gmail.com>
> > > wrote:
> > > >>>>>
> > > >>>>>> Hi Chia-Ping,
> > > >>>>>>
> > > >>>>>> Thanks for the review and suggestions.
> > > >>>>>>
> > > >>>>>> CI0: Thanks for the reminder. Update validVersions in
> > > >>>>>> ConsumerGroupDescribeRequest to 0-1.
> > > >>>>>>
> > > >>>>>> CI1: Yes, I use `ConsumerGroupMember#useClassicProtocol` to
> check
> > > >>> whether
> > > >>>>>> a member in consumer group uses “classic” or “consumer”
> protocol.
> > > >>>>>>
> > > >>>>>> CI2: Yes, a member in share group always uses “share” protocol.
> > > >>>>>>
> > > >>>>>> CI3: Add a table to show meaning of “classic”, “consumer”, and
> > > “share”
> > > >>>>>> protocol.
> > > >>>>>>
> > > >>>>>> BTW, the vote thread is in
> > > >>>>>>
> https://lists.apache.org/thread/rb25tf75tzf4c7jqqldlo5jh9w8chsq6.
> > > >>>>>>
> > > >>>>>> Thanks,
> > > >>>>>> PoAn
> > > >>>>>>
> > > >>>>>>> On Nov 20, 2024, at 11:46 AM, Chia-Ping Tsai <
> > chia7...@apache.org>
> > > >>>>>> wrote:
> > > >>>>>>>
> > > >>>>>>> hi PoAn
> > > >>>>>>>
> > > >>>>>>> CI0:  We have to bump the version of
> ConsumerGroupDescribeRequest
> > > as
> > > >>>>>> well, so server can distinguish the new and old behavior.
> > > >>>>>>>
> > > >>>>>>> CI1: the type of new filed is string, so I guess you plan to
> use
> > > >>>>>> `ConsumerGroupMember#useClassicProtocol` [0] flag to return
> either
> > > >>>>>> "classic" or "consumer", right?
> > > >>>>>>>
> > > >>>>>>> CI2: `MemberDescription` is used by `ShareGroupDescription`
> too,
> > so
> > > >>> the
> > > >>>>>> new filed protocol in shared group is always "shared", right?
> > > >>>>>>>
> > > >>>>>>> CI3: Could you consider adding a table to show the value of the
> > > >>> protocol
> > > >>>>>> field in each case? Andrew has a beautiful table in KIP-1043
> that
> > > >>> lists all
> > > >>>>>> possible protocol names.
> > > >>>>>>>
> > > >>>>>>> [0]
> > > >>>>>>
> > > >>>
> > >
> >
> https://github.com/apache/kafka/blob/441a6d0b790f4a17b454caeea7588a6b90fbd9db/group-coordinator/src/main/java/org/apache/kafka/coordinator/group/modern/consumer/ConsumerGroupMember.java#L454
> > > >>>>>>
> > > >>>>>>>
> > > >>>>>>> Best,
> > > >>>>>>> Chia-Ping
> > > >>>>>>>
> > > >>>>>>> On 2024/11/19 15:45:16 PoAn Yang wrote:
> > > >>>>>>>> Hi David,
> > > >>>>>>>>
> > > >>>>>>>> Thanks for the reminder.
> > > >>>>>>>>
> > > >>>>>>>> DJ4: Add related content to the KIP.
> > > >>>>>>>> Bump validVersions in ConsumerGroupDescribeResponse to “0-1”.
> > > >>>>>>>> Add a new field “Protocol” to ConsumerGroupDescribeResponse.
> > > >>>>>>>>
> > > >>>>>>>> Thanks,
> > > >>>>>>>> PoAn
> > > >>>>>>>>
> > > >>>>>>>>> On Nov 19, 2024, at 3:57 PM, David Jacot
> > > >>> <dja...@confluent.io.INVALID>
> > > >>>>>> wrote:
> > > >>>>>>>>>
> > > >>>>>>>>> Hi PoAn,
> > > >>>>>>>>>
> > > >>>>>>>>> DJ4: Could you please also include the required changes to
> the
> > > >>>>>>>>> ConsumerGroupDescribed API in the public interface section?
> We
> > > >>>>>> basically
> > > >>>>>>>>> need to bump the version, add the new field, etc.
> > > >>>>>>>>>
> > > >>>>>>>>> Thanks,
> > > >>>>>>>>> David
> > > >>>>>>>>>
> > > >>>>>>>>> On Mon, Nov 18, 2024 at 5:40 AM PoAn Yang <
> yangp...@gmail.com>
> > > >>> wrote:
> > > >>>>>>>>>
> > > >>>>>>>>>> Hi David,
> > > >>>>>>>>>>
> > > >>>>>>>>>> DJ4: Add a new field protocol to MemberDescription,
> > > >>>>>>>>>> so the command line tool can show protocol information when
> > > users
> > > >>>>>> describe
> > > >>>>>>>>>> members.
> > > >>>>>>>>>>
> > > >>>>>>>>>> If there is no further suggestion, I will start a vote
> thread
> > > >>> today.
> > > >>>>>>>>>>
> > > >>>>>>>>>> Thanks,
> > > >>>>>>>>>> PoAn
> > > >>>>>>>>>>
> > > >>>>>>>>>>> On Nov 15, 2024, at 11:50 PM, David Jacot
> > > >>>>>> <dja...@confluent.io.INVALID>
> > > >>>>>>>>>> wrote:
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> Hi,
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> DJ2: Using "-" sounds good to me.
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> DJ3: That seems reasonable to me.
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> DJ4: Why not add it right now? I don't want to change the
> > > output
> > > >>> of
> > > >>>>>> the
> > > >>>>>>>>>>> tool too many times.
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> Best,
> > > >>>>>>>>>>> David
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> On Fri, Nov 15, 2024 at 3:23 PM PoAn Yang <
> > yangp...@gmail.com>
> > > >>>>>> wrote:
> > > >>>>>>>>>>>
> > > >>>>>>>>>>>> Hi David / Andrew,
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> Thanks for review. Thanks Andrew for picking up
> > > >>>>>> kafka-share-groups.sh
> > > >>>>>>>>>>>> implementation.
> > > >>>>>>>>>>>> I will handle kafka-consumer-groups.sh.
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> DJ3: After discussing with @Chia-Ping Tsai, we think that
> > > using
> > > >>> new
> > > >>>>>>>>>> format
> > > >>>>>>>>>>>> is more clear.
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> The new format will be like
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>
> > > >>>
> > >
> >
> <topic-name1>:<partition-id1>,<partition-id2>;<topic-name2>:<partition-id1>,<partition-id2>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> Using colon(:) to concat topic name and partition IDs.
> > > >>>>>>>>>>>> Using comma(,) to concat partition IDs within same topic
> > name.
> > > >>>>>>>>>>>> Using semicolon(;) to concat topic strings.
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> AS3: Fix it with kafka-share-groups.sh. Thanks.
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> If there is no further suggestion, I will start a vote
> > thread
> > > >>> next
> > > >>>>>>>>>> Monday.
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> Thanks,
> > > >>>>>>>>>>>> PoAn
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>>> On Nov 14, 2024, at 9:05 PM, Andrew Schofield <
> > > >>>>>>>>>>>> andrew_schofield_j...@outlook.com> wrote:
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> Hi PoAn,
> > > >>>>>>>>>>>>> DJ2: I was just going to comment that "-" would be a more
> > > >>>>>> appropriate
> > > >>>>>>>>>>>> missing value, but
> > > >>>>>>>>>>>>> you got there first.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> AS3: The examples for kafka-share-groups.sh include
> > > >>>>>>>>>>>> kafka-consumer-groups.sh in the
> > > >>>>>>>>>>>>> command line.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> If this is accepted in time, I'm happy to pick up the
> > > >>>>>> implementation of
> > > >>>>>>>>>>>> the share groups
> > > >>>>>>>>>>>>> part of this if it helps.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> Thanks,
> > > >>>>>>>>>>>>> Andrew
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> ________________________________________
> > > >>>>>>>>>>>>> From: Frank Yang <yangp...@gmail.com>
> > > >>>>>>>>>>>>> Sent: 14 November 2024 10:48
> > > >>>>>>>>>>>>> To: dev@kafka.apache.org <dev@kafka.apache.org>
> > > >>>>>>>>>>>>> Subject: Re: [DISCUSS] KIP-1099: Extend
> > kafka-consumer-groups
> > > >>>>>> command
> > > >>>>>>>>>>>> line tool to support new consumer group
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> Hi David,
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> Thanks for the review and suggestion! I would like to get
> > > this
> > > >>> in
> > > >>>>>> AK
> > > >>>>>>>>>> 4.0
> > > >>>>>>>>>>>> as well. I will do my best.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> DJ1: Update KIP to put GROUP-EPOCH and
> > > TARGET-ASSIGNMENT-EPOCH
> > > >>>>>> before
> > > >>>>>>>>>>>> #MEMBERS.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> DJ2: I prefer to follow current missing column value “-“.
> > > >>>>>> (reference <
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>
> > > >>>
> > >
> >
> https://github.com/apache/kafka/blob/18199028a672fd973ac37bf26316994babc2a6da/tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java#L92
> > > >>>>>>>>>>>>> )
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> DJ3: Update KIP to use CURRENT-EPOCH CURRENT-ASSIGNMENT
> > > >>>>>> TARGET-EPOCH
> > > >>>>>>>>>>>> TARGET-ASSIGNMENT.
> > > >>>>>>>>>>>>> Remove GROUP-EPOCH.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> For assignment value, it follows current output
> (reference
> > <
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>
> > > >>>
> > >
> >
> https://github.com/apache/kafka/blob/18199028a672fd973ac37bf26316994babc2a6da/tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java#L413-L418
> > > >>>>>>>>>>> ).
> > > >>>>>>>>>>>> I think the form of `topicid-partitionid` is more clear.
> > > >>>>>>>>>>>>> If we would like to use this form, I will update both
> > output
> > > in
> > > >>>>>>>>>>>> kafka-consumer-groups.sh and kafka-share-groups.sh.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> DJ4: It looks like DescribeGroupsResponseData only has
> > > protocol
> > > >>>>>> type at
> > > >>>>>>>>>>>> group level.
> > > >>>>>>>>>>>>> Both DescribeGroupsResponseData and
> > > >>>>>> ConsumerGroupDescribeResponseData
> > > >>>>>>>>>>>> don’t have protocol at member level.
> > > >>>>>>>>>>>>> Could we use a followup to add it?
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> DJ5: Update KIP to put LEADER-EPOCH before
> CURRENT-OFFSET.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> Thanks,
> > > >>>>>>>>>>>>> PoAn
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> On Nov 14, 2024, at 3:43 PM, David Jacot
> > > >>>>>> <dja...@confluent.io.INVALID
> > > >>>>>>>>>>>
> > > >>>>>>>>>>>> wrote:
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> Hi PoAn,
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> Thanks for the KIP! I have a few minor
> > comments/suggestions:
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> DJ1: In the output of `--describe --verbose`, I would
> > > suggest
> > > >>>>>> putting
> > > >>>>>>>>>>>>>> `GROUP-EPOCH` and `TARGET-ASSIGNMENT-EPOCH` before
> > > `#MEMBERS`.
> > > >>>>>>>>>>>>>> DJ2: Continuing on the above, I assume that we will
> print
> > > out
> > > >>> N/A
> > > >>>>>> for
> > > >>>>>>>>>>>> the
> > > >>>>>>>>>>>>>> fields not supported by classic groups. Is this correct?
> > > >>>>>>>>>>>>>> DJ3: In the output of `--describe --members --verbose`,
> I
> > > >>> wonder
> > > >>>>>> if we
> > > >>>>>>>>>>>>>> should use the following order and terms: CURRENT-EPOCH
> > > >>>>>>>>>>>> CURRENT-ASSIGNMENT
> > > >>>>>>>>>>>>>> TARGET-EPOCH TARGET-ASSIGNMENT . I would remove the
> > > GROUP-EPOCH
> > > >>>>>>>>>> because
> > > >>>>>>>>>>>> it
> > > >>>>>>>>>>>>>> is already in the group description. The value `(0)`
> used
> > > for
> > > >>> the
> > > >>>>>>>>>>>>>> assignment is incorrect. Here I suppose that we will
> print
> > > out
> > > >>> the
> > > >>>>>>>>>> list
> > > >>>>>>>>>>>> of
> > > >>>>>>>>>>>>>> partitions in the form of `topicid-partitionid`.
> > > >>>>>>>>>>>>>> DJ4: Continuing on the above, I wonder if we should also
> > add
> > > >>> the
> > > >>>>>>>>>>>> protocol
> > > >>>>>>>>>>>>>> used `classic` or `consumer`. For context, it is
> possible
> > to
> > > >>> have
> > > >>>>>>>>>>>> `classic`
> > > >>>>>>>>>>>>>> members and `consumer` members in a `consumer` group
> > during
> > > an
> > > >>>>>> online
> > > >>>>>>>>>>>>>> upgrade from the classic protocol to the consumer
> > protocol.
> > > >>> Having
> > > >>>>>>>>>> this
> > > >>>>>>>>>>>>>> information may be handy for administrators. What do you
> > > think?
> > > >>>>>>>>>>>>>> DJ5: In the output of `--describe --offsets --verbose`,
> I
> > > would
> > > >>>>>>>>>> suggest
> > > >>>>>>>>>>>>>> putting `LEADER-EPOCH` closer to `CURRENT-OFFSET`.
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> It would be great if we could get this one in AK 4.0 as
> it
> > > >>>>>> changes the
> > > >>>>>>>>>>>>>> output of the command.
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> Thanks,
> > > >>>>>>>>>>>>>> DJ
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> On Fri, Nov 1, 2024 at 7:40 AM Frank Yang <
> > > yangp...@gmail.com>
> > > >>>>>> wrote:
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Hi Sean / Andrew / Lianet,
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Thanks for all your review and suggestions.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> AS1, LM1, LM4: Change to add KIP-848 information when
> > users
> > > >>> give
> > > >>>>>>>>>>>> —verbose
> > > >>>>>>>>>>>>>>> option.
> > > >>>>>>>>>>>>>>> —describe —verbose: shows group epoch and target
> > assignment
> > > >>>>>> epoch.
> > > >>>>>>>>>>>>>>> —describe —members —verbose: shows above information,
> > > member
> > > >>>>>> epoch,
> > > >>>>>>>>>> and
> > > >>>>>>>>>>>>>>> target assignment.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> AS2: Change to use MEMBER-EPOCH to align with KIP-848
> > > >>> definition.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> LM2: For classic group, it doesn’t have epoch, so I use
> > > >>> Optional
> > > >>>>>>>>>>>> fields in
> > > >>>>>>>>>>>>>>> ConsumerGroupDescription.
> > > >>>>>>>>>>>>>>> For share group, it relies on KIP-848. It must have
> > epoch,
> > > so
> > > >>> I
> > > >>>>>> use
> > > >>>>>>>>>> int
> > > >>>>>>>>>>>>>>> fields in ShareGroupDescription.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> LM3: Remove —state change. We can get group level
> > > information
> > > >>> by
> > > >>>>>>>>>>>> —describe
> > > >>>>>>>>>>>>>>> —verbose.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> SQ1: Add LEADER-EPOCH when users give —describe
> —offsets
> > > >>>>>> —verbose.
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>> Thanks.
> > > >>>>>>>>>>>>>>> PoAn
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>> On Nov 1, 2024, at 5:08 AM, Lianet M. <
> > liane...@gmail.com
> > > >
> > > >>>>>> wrote:
> > > >>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>> Hello Frank, thanks for the KIP! A few comments:
> > > >>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>> LM1. I strongly agree with Andrew's suggestion of
> moving
> > > this
> > > >>>>>> into a
> > > >>>>>>>>>>>>>>>> --verbose option. I expect someone would only attempt
> to
> > > make
> > > >>>>>> sense
> > > >>>>>>>>>> of
> > > >>>>>>>>>>>>>>> the
> > > >>>>>>>>>>>>>>>> epochs while debugging an issue, not while trying to
> > view
> > > the
> > > >>>>>> group
> > > >>>>>>>>>> or
> > > >>>>>>>>>>>>>>>> member's info. (Also member-epoch makes more sense to
> > me,
> > > >>> even
> > > >>>>>> more
> > > >>>>>>>>>>>> if we
> > > >>>>>>>>>>>>>>>> end up agreeing in a --verbose). Related to both
> issues,
> > > my
> > > >>>>>> take is
> > > >>>>>>>>>>>> that
> > > >>>>>>>>>>>>>>>> whoever is close to the protocol will expect
> > member-epoch,
> > > >>>>>> whoever
> > > >>>>>>>>>> is
> > > >>>>>>>>>>>> not
> > > >>>>>>>>>>>>>>>> will probably won't even need to see the epochs at
> all.
> > > >>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>> LM2. Why are the epochs defined as Optional (don't we
> > > expect
> > > >>> to
> > > >>>>>>>>>> always
> > > >>>>>>>>>>>>>>> have
> > > >>>>>>>>>>>>>>>> them? with 0 initially, defined on the broker side for
> > the
> > > >>> group
> > > >>>>>>>>>> ones,
> > > >>>>>>>>>>>>>>> and
> > > >>>>>>>>>>>>>>>> client side for the member)
> > > >>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>> LM3. Why is the KIP including the –state option in the
> > > >>> proposed
> > > >>>>>>>>>>>> changes?
> > > >>>>>>>>>>>>>>> (
> > > >>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>
> > > >>>
> > >
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=327977411#KIP1099:Extendkafkaconsumergroupscommandlinetooltosupportnewconsumergroup---state
> > > >>>>>>>>>>>>>>>> ).
> > > >>>>>>>>>>>>>>>> I get that the output would change in that example,
> but
> > > it’s
> > > >>> not
> > > >>>>>>>>>>>> because
> > > >>>>>>>>>>>>>>> of
> > > >>>>>>>>>>>>>>>> any change to the –state option itself. It's because
> of
> > > the
> > > >>>>>> change
> > > >>>>>>>>>>>>>>> proposed
> > > >>>>>>>>>>>>>>>> to the –described (required with the --state), and the
> > > >>> changes
> > > >>>>>> to
> > > >>>>>>>>>>>>>>>> --describe are already explained above (seems
> confusing,
> > > got
> > > >>> me
> > > >>>>>>>>>>>> looking
> > > >>>>>>>>>>>>>>> for
> > > >>>>>>>>>>>>>>>> a change to the state filter which seemed unrelated).
> > > >>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>> LM4. Group epoch and target assignment epoch are
> > > conceptually
> > > >>>>>> at the
> > > >>>>>>>>>>>>>>> group
> > > >>>>>>>>>>>>>>>> level. vs member epoch that lands at a member level.
> So
> > > >>> wonder
> > > >>>>>> if we
> > > >>>>>>>>>>>>>>> should
> > > >>>>>>>>>>>>>>>> show them accordingly (ex. using the --verbose option)
> > > >>>>>>>>>>>>>>>> –describe –verbose => shows group epoch and target
> > > assignment
> > > >>>>>> epoch
> > > >>>>>>>>>>>>>>>>         –describe –members –verbose => shows member
> > epoch
> > > >>>>>> (along
> > > >>>>>>>>>>>>>>>> with group epoch and target assignment epoch)
> > > >>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>> Thanks!
> > > >>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>> Lianet
> > > >>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>> On Thu, Oct 31, 2024 at 7:30 AM Andrew Schofield <
> > > >>>>>>>>>>>>>>>> andrew_schofield_j...@outlook.com> wrote:
> > > >>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> Hi PoAn,
> > > >>>>>>>>>>>>>>>>> Thanks for the KIP. I have a few comments.
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> AS1: It seems to me that these new additions are most
> > > >>> useful to
> > > >>>>>>>>>>>> people
> > > >>>>>>>>>>>>>>>>> trying to understand
> > > >>>>>>>>>>>>>>>>> the progress of rebalancing in quite some detail. The
> > > >>>>>> information
> > > >>>>>>>>>> is
> > > >>>>>>>>>>>>>>>>> really not understandable
> > > >>>>>>>>>>>>>>>>> for most users who do not have deep knowledge of
> > > >>> KIP-848/932.
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> As a result, I suggest for kafka-share-groups.sh that
> > you
> > > >>> add a
> > > >>>>>>>>>>>>>>> --members
> > > >>>>>>>>>>>>>>>>> --verbose option
> > > >>>>>>>>>>>>>>>>> and only include the new information in the output
> for
> > > that
> > > >>>>>> option,
> > > >>>>>>>>>>>>>>> rather
> > > >>>>>>>>>>>>>>>>> than changing the
> > > >>>>>>>>>>>>>>>>> non-verbose --members output.
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> I also make a similar suggestion for
> > > >>> kafka-consumer-groups.sh
> > > >>>>>>>>>>>> --members
> > > >>>>>>>>>>>>>>>>> and only add the
> > > >>>>>>>>>>>>>>>>> new information for the --verbose output.
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> AS2: I strongly suggest that you use MEMBER-EPOCH
> > > instead of
> > > >>>>>>>>>>>>>>>>> CONSUMER-EPOCH.
> > > >>>>>>>>>>>>>>>>> I think it's more confusing not following the
> > > terminology of
> > > >>>>>> the
> > > >>>>>>>>>>>> KIPs.
> > > >>>>>>>>>>>>>>> For
> > > >>>>>>>>>>>>>>>>> one thing,
> > > >>>>>>>>>>>>>>>>> we already have "member" in the admin client such as
> > > >>>>>>>>>>>> MemberDescription.
> > > >>>>>>>>>>>>>>>>> It's not a
> > > >>>>>>>>>>>>>>>>> new term.
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> Thanks,
> > > >>>>>>>>>>>>>>>>> Andrew
> > > >>>>>>>>>>>>>>>>> ________________________________________
> > > >>>>>>>>>>>>>>>>> From: PoAn Yang <pay...@apache.org>
> > > >>>>>>>>>>>>>>>>> Sent: 25 October 2024 13:55
> > > >>>>>>>>>>>>>>>>> To: dev@kafka.apache.org <dev@kafka.apache.org>
> > > >>>>>>>>>>>>>>>>> Subject: Re: [DISCUSS] KIP-1099: Extend
> > > >>> kafka-consumer-groups
> > > >>>>>>>>>> command
> > > >>>>>>>>>>>>>>> line
> > > >>>>>>>>>>>>>>>>> tool to support new consumer group
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> Hi Lucas,
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> Thanks for the review!
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> 1) Yes, I add related change for
> kafka-share-groups.sh
> > to
> > > >>> the
> > > >>>>>> KIP.
> > > >>>>>>>>>>>> Could
> > > >>>>>>>>>>>>>>>>> you take a look? Thanks for the suggestion.
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> 2) We use CONSUMER-ID as member ID. If we use
> > > MEMBER-EPOCH
> > > >>>>>> here,
> > > >>>>>>>>>>>> users
> > > >>>>>>>>>>>>>>> may
> > > >>>>>>>>>>>>>>>>> confuse what is different between CONSUMER and
> MEMBER.
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> Thanks,
> > > >>>>>>>>>>>>>>>>> PoAn
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>> On 2024/10/23 13:28:17 Lucas Brutschy wrote:
> > > >>>>>>>>>>>>>>>>>> Hi Frank,
> > > >>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>> thanks for the KIP!
> > > >>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>> 1) For consistency, should we do the same for
> > > >>>>>>>>>>>>>>>>>> kafka-share-groups.sh, ShareGroupDescription, etc. ?
> > > Even
> > > >>> if
> > > >>>>>> we do
> > > >>>>>>>>>>>> not
> > > >>>>>>>>>>>>>>>>>> implement it right now if the share group
> > implementation
> > > >>> may
> > > >>>>>> still
> > > >>>>>>>>>>>> be
> > > >>>>>>>>>>>>>>>>>> incomplete, it may make sense to include it in the
> > KIP.
> > > >>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>> 2) Why call it CONSUMER-EPOCH, not MEMBER-EPOCH?
> That
> > > would
> > > >>>>>> seem
> > > >>>>>>>>>>>> more
> > > >>>>>>>>>>>>>>>>>> consistent.
> > > >>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>> Cheers,
> > > >>>>>>>>>>>>>>>>>> Lucas
> > > >>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>> On Wed, Oct 23, 2024 at 2:41 PM Frank Yang <
> > > >>>>>> yangp...@gmail.com>
> > > >>>>>>>>>>>> wrote:
> > > >>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>>> Hi all,
> > > >>>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>>> I would like to kick off the discussion of
> KIP-1099.
> > > This
> > > >>> KIP
> > > >>>>>>>>>>>> enhances
> > > >>>>>>>>>>>>>>>>> the
> > > >>>>>>>>>>>>>>>>>>> kafka-consumer-groups tools to include state which
> is
> > > >>>>>> introduced
> > > >>>>>>>>>> by
> > > >>>>>>>>>>>>>>>>> KIP-848.
> > > >>>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>>> KIP-1099: Extend kafka-consumer-groups command line
> > > tool
> > > >>> to
> > > >>>>>>>>>> support
> > > >>>>>>>>>>>>>>> new
> > > >>>>>>>>>>>>>>>>>>> consumer group - Apache Kafka - Apache Software
> > > Foundation
> > > >>>>>>>>>>>>>>>>>>> <
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>
> > > >>>
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group
> > > >>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>>> cwiki.apache.org
> > > >>>>>>>>>>>>>>>>>>> <
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>
> > > >>>
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group
> > > >>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>>> [image: favicon.ico]
> > > >>>>>>>>>>>>>>>>>>> <
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>
> > > >>>
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group
> > > >>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>>> <
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>
> > > >>>
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group
> > > >>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>>> Thank you,
> > > >>>>>>>>>>>>>>>>>>> PoAn
> > > >>>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>>>
> > > >>>>>>>>
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > > >>>
> > > >>>
> > > >>
> > >
> > >
> >
>

Reply via email to