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