Hi Andrew,

Thanks for the feedback.

AS4: Change TARGET-ASSIGNMENT-EPOCH to ASSIGNMENT-EPOCH for “—describe —state 
—verbose" in kafka-share-groups.sh.

AS5: Remove TARGET-EPOCH and TARGET-ASSIGNMENT.
Change CURRENT-EPOCH to MEMBER-EPOCH and CURRENT-ASSIGNMENT to ASSIGNMENT for 
“—describe —member —verbose” in kafka-share-groups.sh.

Thanks,
PoAn

> On Nov 25, 2024, at 10:48 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