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