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 >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>> >>>>> >>>>> >>>> >> >> >>