Hi PoAn,

Thanks for the update.

Regarding the CLI, I wonder whether we should rather have a column called
"Upgraded" which is only displayed when some members use the classic
protocol. The displayed value would be True for consumer members and False
for classic members. I think that this may be more useful for end users.
What do you think?

It is a bit unfortunate that we reused MemberDescription for share groups
in the admin client because they are unrelated fields now. I wonder whether
we should have a ShareMemberDescription. Andrew, would it be an option?

Best,
David

On Mon, Nov 25, 2024 at 3:50 PM Andrew Schofield <
andrew_schofield_j...@outlook.com> wrote:

> Hi PoAn,
> I've taken another pass over the KIP and have some more comments around
> the share
> group support.
>
> AS4: Share groups do not have the concept of a target assignment. As a
> result,
> the verbose state TARGET-ASSIGNMENT-EPOCH is a bit misleading from my
> point of view. ASSIGNMENT-EPOCH is better.
>
> AS5: Similarly for the verbose members output, the TARGET-EPOCH and
> TARGET-ASSIGNMENT are not really appropriate. Personally, I would prefer
> just MEMBER-EPOCH and ASSIGNMENT, and remove the "target" fields.
>
> Thanks,
> Andrew
>
> ________________________________________
> From: PoAn Yang <yangp...@gmail.com>
> Sent: 24 November 2024 15:08
> 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 Chia-Ping,
>
> Thanks for the suggestion.
>
> The “isClassic” field in ConsumerGroupDescribeResponse is a boolean value,
> so we can’t use it as the protocol string.
> I change the “PROTOCOL” column to “IS-CLASSIC” in kafka-consumer-groups.sh.
> It returns “true” if a member is in a classic group or it’s a classic
> member in a consumer group.
> In other cases, it returns “false”.
>
> I have a draft implementation in
> https://github.com/apache/kafka/pull/17872.
>
> Thanks,
> PoAn
>
> > On Nov 23, 2024, at 1:05 PM, Chia-Ping Tsai <chia7...@gmail.com> wrote:
> >
> > hi PoAn
> >
> > `isClassic` is good to me :)
> >
> > Best,
> > Chia-Ping
> >
> > PoAn Yang <yangp...@gmail.com> 於 2024年11月23日 週六 下午12:35寫道:
> >
> >> Hi Chia-Ping / David,
> >>
> >> Thanks for the great suggestion.
> >>
> >> How about using “isClassic”?
> >> The term like “isLegacy” may be equivocal in the future.
> >> For example, if we have a newer version of consumer / share consumer,
> the
> >> meaning will be different for different cases.
> >> If we use “isClassic”, for MemberDescription in ClassicGroupDescription,
> >> the value can be always “true”.
> >> In ConsumerGroupDescription, it’s “true” when it’s a classic member.
> >> In ShareGroupDescription, it’s always “false”.
> >>
> >> Thanks,
> >> PoAn
> >>
> >>> On Nov 23, 2024, at 1:02 AM, Chia-Ping Tsai <chia7...@gmail.com>
> wrote:
> >>>
> >>> hi DJ
> >>>
> >>>> My goal was to have a way to tell the user that his (new) consumer
> group
> >>> may have non-upgraded members yet. I wonder if we could use a boolean
> to
> >>> signal this, e.g. isLegacy. Then, in the CLI we could have a column
> which
> >>> is only displayed when they are non upgraded members. What do you
> think?
> >>>
> >>> Yes, this is a good approach, but the downside is that the new isLegacy
> >>> field in MemberDescription would be irrelevant for classic and shared
> >>> groups. This would require thorough documentation to clarify its
> purpose.
> >>>
> >>> Additionally, we could use a boolean instead of a string for the new
> >> field
> >>> in the RPC to reduce the request size.
> >>> Best,
> >>> Chia-Ping
> >>>
> >>>
> >>>
> >>> David Jacot <dja...@confluent.io.invalid> 於 2024年11月23日 週六 上午12:41寫道:
> >>>
> >>>> Hi both,
> >>>>
> >>>> Ah, I understand what you mean now. You're saying that we have two
> >> protocol
> >>>> fields. One at the group level and one at the member level (the new
> >> one).
> >>>> The two fields are actually two different things. The former is the
> >> name of
> >>>> the embedded protocol used in the classic protocol whereas the latter
> is
> >>>> the name of the protocol/api used. This is indeed confusing.
> >>>>
> >>>> My goal was to have a way to tell the user that his (new) consumer
> group
> >>>> may have non-upgraded members yet. I wonder if we could use a boolean
> to
> >>>> signal this, e.g. isLegacy. Then, in the CLI we could have a column
> >> which
> >>>> is only displayed when they are non upgraded members. What do you
> think?
> >>>>
> >>>> If we cannot find a good way to represent this, we could drop it from
> >> this
> >>>> KIP too.
> >>>>
> >>>> Best,
> >>>> David
> >>>>
> >>>> On Fri, Nov 22, 2024 at 5:12 PM PoAn Yang <yangp...@gmail.com> wrote:
> >>>>
> >>>>> Hi Chia-Ping / David,
> >>>>>
> >>>>> Thanks for the review and suggestions.
> >>>>>
> >>>>>>> I don't fully follow your comment so please excuse me if I say
> >>>> something
> >>>>>>> wrong.
> >>>>>
> >>>>> I think Chia-Ping wants to say: originally, the default protocol in
> >>>>> classic group is “consumer”.
> >>>>> After we have a new consumer group, the protocol of a classic member
> in
> >>>>> consumer group is “classic”.
> >>>>> The MemberDescription is used by both ClassicGroupDescription and
> >>>>> ConsumerGroupDescription.
> >>>>> If we add the protocol field to MemberDescription, the protocol of a
> >>>>> classic member in classic group is “consumer”, but it’s “classic” in
> >>>>> consumer group.
> >>>>> To avoid misleading word, we can add a new collection of member
> >> protocols
> >>>>> to ConsumerGroupDescription only.
> >>>>> The original goal is to show member protocol during consumer
> migration,
> >>>> so
> >>>>> we don’t need to add this information to ClassicGroupDescription.
> >>>>>
> >>>>> Please correct me if I misunderstood anything.
> >>>>>
> >>>>> Thanks,
> >>>>> PoAn
> >>>>>
> >>>>>> On Nov 22, 2024, at 7:00 PM, Chia-Ping Tsai <chia7...@gmail.com>
> >>>> wrote:
> >>>>>>
> >>>>>> 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