Hi PoAn, Thanks for the update.
Regarding the CLI, I wonder whether we should rather have a column called "Upgraded" which is only displayed when some members use the classic protocol. The displayed value would be True for consumer members and False for classic members. I think that this may be more useful for end users. What do you think? It is a bit unfortunate that we reused MemberDescription for share groups in the admin client because they are unrelated fields now. I wonder whether we should have a ShareMemberDescription. Andrew, would it be an option? Best, David On Mon, Nov 25, 2024 at 3:50 PM Andrew Schofield < andrew_schofield_j...@outlook.com> wrote: > Hi PoAn, > I've taken another pass over the KIP and have some more comments around > the share > group support. > > AS4: Share groups do not have the concept of a target assignment. As a > result, > the verbose state TARGET-ASSIGNMENT-EPOCH is a bit misleading from my > point of view. ASSIGNMENT-EPOCH is better. > > AS5: Similarly for the verbose members output, the TARGET-EPOCH and > TARGET-ASSIGNMENT are not really appropriate. Personally, I would prefer > just MEMBER-EPOCH and ASSIGNMENT, and remove the "target" fields. > > Thanks, > Andrew > > ________________________________________ > From: PoAn Yang <yangp...@gmail.com> > Sent: 24 November 2024 15:08 > To: dev@kafka.apache.org <dev@kafka.apache.org> > Subject: Re: [DISCUSS] KIP-1099: Extend kafka-consumer-groups command line > tool to support new consumer group > > Hi Chia-Ping, > > Thanks for the suggestion. > > The “isClassic” field in ConsumerGroupDescribeResponse is a boolean value, > so we can’t use it as the protocol string. > I change the “PROTOCOL” column to “IS-CLASSIC” in kafka-consumer-groups.sh. > It returns “true” if a member is in a classic group or it’s a classic > member in a consumer group. > In other cases, it returns “false”. > > I have a draft implementation in > https://github.com/apache/kafka/pull/17872. > > Thanks, > PoAn > > > On Nov 23, 2024, at 1:05 PM, Chia-Ping Tsai <chia7...@gmail.com> wrote: > > > > hi PoAn > > > > `isClassic` is good to me :) > > > > Best, > > Chia-Ping > > > > PoAn Yang <yangp...@gmail.com> 於 2024年11月23日 週六 下午12:35寫道: > > > >> Hi Chia-Ping / David, > >> > >> Thanks for the great suggestion. > >> > >> How about using “isClassic”? > >> The term like “isLegacy” may be equivocal in the future. > >> For example, if we have a newer version of consumer / share consumer, > the > >> meaning will be different for different cases. > >> If we use “isClassic”, for MemberDescription in ClassicGroupDescription, > >> the value can be always “true”. > >> In ConsumerGroupDescription, it’s “true” when it’s a classic member. > >> In ShareGroupDescription, it’s always “false”. > >> > >> Thanks, > >> PoAn > >> > >>> On Nov 23, 2024, at 1:02 AM, Chia-Ping Tsai <chia7...@gmail.com> > wrote: > >>> > >>> hi DJ > >>> > >>>> My goal was to have a way to tell the user that his (new) consumer > group > >>> may have non-upgraded members yet. I wonder if we could use a boolean > to > >>> signal this, e.g. isLegacy. Then, in the CLI we could have a column > which > >>> is only displayed when they are non upgraded members. What do you > think? > >>> > >>> Yes, this is a good approach, but the downside is that the new isLegacy > >>> field in MemberDescription would be irrelevant for classic and shared > >>> groups. This would require thorough documentation to clarify its > purpose. > >>> > >>> Additionally, we could use a boolean instead of a string for the new > >> field > >>> in the RPC to reduce the request size. > >>> Best, > >>> Chia-Ping > >>> > >>> > >>> > >>> David Jacot <dja...@confluent.io.invalid> 於 2024年11月23日 週六 上午12:41寫道: > >>> > >>>> Hi both, > >>>> > >>>> Ah, I understand what you mean now. You're saying that we have two > >> protocol > >>>> fields. One at the group level and one at the member level (the new > >> one). > >>>> The two fields are actually two different things. The former is the > >> name of > >>>> the embedded protocol used in the classic protocol whereas the latter > is > >>>> the name of the protocol/api used. This is indeed confusing. > >>>> > >>>> My goal was to have a way to tell the user that his (new) consumer > group > >>>> may have non-upgraded members yet. I wonder if we could use a boolean > to > >>>> signal this, e.g. isLegacy. Then, in the CLI we could have a column > >> which > >>>> is only displayed when they are non upgraded members. What do you > think? > >>>> > >>>> If we cannot find a good way to represent this, we could drop it from > >> this > >>>> KIP too. > >>>> > >>>> Best, > >>>> David > >>>> > >>>> On Fri, Nov 22, 2024 at 5:12 PM PoAn Yang <yangp...@gmail.com> wrote: > >>>> > >>>>> Hi Chia-Ping / David, > >>>>> > >>>>> Thanks for the review and suggestions. > >>>>> > >>>>>>> I don't fully follow your comment so please excuse me if I say > >>>> something > >>>>>>> wrong. > >>>>> > >>>>> I think Chia-Ping wants to say: originally, the default protocol in > >>>>> classic group is “consumer”. > >>>>> After we have a new consumer group, the protocol of a classic member > in > >>>>> consumer group is “classic”. > >>>>> The MemberDescription is used by both ClassicGroupDescription and > >>>>> ConsumerGroupDescription. > >>>>> If we add the protocol field to MemberDescription, the protocol of a > >>>>> classic member in classic group is “consumer”, but it’s “classic” in > >>>>> consumer group. > >>>>> To avoid misleading word, we can add a new collection of member > >> protocols > >>>>> to ConsumerGroupDescription only. > >>>>> The original goal is to show member protocol during consumer > migration, > >>>> so > >>>>> we don’t need to add this information to ClassicGroupDescription. > >>>>> > >>>>> Please correct me if I misunderstood anything. > >>>>> > >>>>> Thanks, > >>>>> PoAn > >>>>> > >>>>>> On Nov 22, 2024, at 7:00 PM, Chia-Ping Tsai <chia7...@gmail.com> > >>>> wrote: > >>>>>> > >>>>>> hi DJ > >>>>>> > >>>>>>> How about we use another Jira to add “SHARE” to GroupProtocol and > >>>> change > >>>>>> return type of ModernGroup#protocolType? > >>>>>> > >>>>>> This is not my comment ... sorry for the incorrect quote :( > >>>>>> > >>>>>>> A member in a classic group should report "classic". > >>>>>> > >>>>>> I completely agree. However, in this case, > >>>>> ClassicGroupDescription#protocol > >>>>>> returns 'consumer', while > ClassicGroupDescription#members[x].protocol > >>>>>> returns 'classic'. This inconsistency feels a bit strange to me. > >>>>>> > >>>>>> Best, > >>>>>> Chia-Ping > >>>>>> > >>>>>> > >>>>>> David Jacot <dja...@confluent.io.invalid> 於 2024年11月22日 週五 > 下午6:51寫道: > >>>>>> > >>>>>>> Hi Chia, > >>>>>>> > >>>>>>>>> LM4: I agree it’s better to use a type like GroupProtocol enum, > but > >>>> I > >>>>>>> would like to align the format with kafka-groups.sh. > >>>>>>> How about we use another Jira to add “SHARE” to GroupProtocol and > >>>> change > >>>>>>> return type of ModernGroup#protocolType? > >>>>>>> > >>>>>>> My understanding is that `GroupProtocol` is used to drive the > config > >>>> of > >>>>> the > >>>>>>> `Consumer`. Hence adding `Share` seems wrong to me. Or are you > >>>>> referring to > >>>>>>> another GroupProtocol enum? Perhaps GroupType enum? > >>>>>>> > >>>>>>>> In fact, I'm wondering if we should even add 'protocol' to > >>>>>>> MemberDescription, > >>>>>>> since the field has different values between classic and consumer > >>>>> groups—it > >>>>>>> shows 'consumer' in classic groups, whereas it shows 'classic' in > >>>>> consumer > >>>>>>> groups. Yes, it seems like a typo, but it's true. This > inconsistency > >>>>> feels > >>>>>>> confusing to me. For example, users call > Admin#describeConsumerGroups > >>>>> and > >>>>>>> see that a member has the 'consumer' protocol when it's in a > classic > >>>>> group. > >>>>>>> Then, if the group is upgraded to a consumer group, calling > >>>>>>> Admin#describeConsumerGroups again shows the protocol as 'classic' > >> for > >>>>> the > >>>>>>> same member. > >>>>>>> > >>>>>>> I don't fully follow your comment so please excuse me if I say > >>>> something > >>>>>>> wrong. > >>>>>>> > >>>>>>> I think that it should work as follows: > >>>>>>> * A member in a classic group should report "classic". > >>>>>>> * A member using the consumer protocol in a consumer group should > >>>> report > >>>>>>> "consumer". > >>>>>>> * A member using the classic protocol in a consumer group should > >>>> report > >>>>>>> "classic". > >>>>>>> * A member in a share group should report "share". > >>>>>>> > >>>>>>>> If all we want to do is distinguish classic members in the > >>>>>>> ConsumerGroupDescription, then we shouldn't modify the common > >>>>>>> MemberDescription structure. Instead, we could add a collection to > >>>>>>> ConsumerGroupDescription to trace members using the classic > protocol, > >>>>> which > >>>>>>> would allow us to enrich the output of command-line tools. > >>>>>>> > >>>>>>> Personally, I believe that using different collections per protocol > >>>>> types > >>>>>>> is not necessary. A field in the member is more than enough. > >>>>>>> > >>>>>>> Best, > >>>>>>> DJ > >>>>>>> > >>>>>>> On Fri, Nov 22, 2024 at 12:01 PM Chia-Ping Tsai < > chia7...@gmail.com> > >>>>>>> wrote: > >>>>>>> > >>>>>>>> hi PoAn > >>>>>>>> > >>>>>>>>> LM4: I agree it’s better to use a type like GroupProtocol enum, > but > >>>> I > >>>>>>>> would like to align the format with kafka-groups.sh. > >>>>>>>> How about we use another Jira to add “SHARE” to GroupProtocol and > >>>>> change > >>>>>>>> return type of ModernGroup#protocolType? > >>>>>>>> > >>>>>>>> MemberDescription is also used by ClassicGroupDescription, and in > >>>>> classic > >>>>>>>> groups, the protocol can be an arbitrary string, so we can't use > an > >>>>> enum. > >>>>>>>> > >>>>>>>> In fact, I'm wondering if we should even add 'protocol' to > >>>>>>>> MemberDescription, > >>>>>>>> since the field has different values between classic and consumer > >>>>>>> groups—it > >>>>>>>> shows 'consumer' in classic groups, whereas it shows 'classic' in > >>>>>>> consumer > >>>>>>>> groups. Yes, it seems like a typo, but it's true. This > inconsistency > >>>>>>> feels > >>>>>>>> confusing to me. For example, users call > >> Admin#describeConsumerGroups > >>>>> and > >>>>>>>> see that a member has the 'consumer' protocol when it's in a > classic > >>>>>>> group. > >>>>>>>> Then, if the group is upgraded to a consumer group, calling > >>>>>>>> Admin#describeConsumerGroups again shows the protocol as 'classic' > >>>> for > >>>>>>> the > >>>>>>>> same member. > >>>>>>>> > >>>>>>>> If all we want to do is distinguish classic members in the > >>>>>>>> ConsumerGroupDescription, then we shouldn't modify the common > >>>>>>>> MemberDescription structure. Instead, we could add a collection to > >>>>>>>> ConsumerGroupDescription to trace members using the classic > >> protocol, > >>>>>>> which > >>>>>>>> would allow us to enrich the output of command-line tools. > >>>>>>>> Best, > >>>>>>>> Chia-Ping > >>>>>>>> > >>>>>>>> PoAn Yang <yangp...@gmail.com> 於 2024年11月22日 週五 下午3:46寫道: > >>>>>>>> > >>>>>>>>> Hi Lianet / Jeff, > >>>>>>>>> > >>>>>>>>> Thanks for the review. > >>>>>>>>> > >>>>>>>>> LM5: The kafka-share-groups.sh also uses “—describe” to show > >> offsets > >>>>>>>>> information. > >>>>>>>>> Change to use “—describe —state —verbose” to show group level > >>>>>>> information > >>>>>>>>> in kafka-share-groups.sh. > >>>>>>>>> > >>>>>>>>> LM6: Update the example. > >>>>>>>>> > >>>>>>>>> LM7: Add a description to mention “—verbose” is a new option in > >>>>>>>>> ShareGroupCommandOptions. > >>>>>>>>> > >>>>>>>>> JK2: Yes, add the statement about format change for ASSIGNMENT > >>>> value. > >>>>>>>>> > >>>>>>>>> Thanks, > >>>>>>>>> PoAn > >>>>>>>>> > >>>>>>>>>> On Nov 22, 2024, at 7:35 AM, Jeff Kim <jeffkb...@apache.org> > >>>> wrote: > >>>>>>>>>> > >>>>>>>>>> Hi PoAn, > >>>>>>>>>> > >>>>>>>>>> JK2: Can we state in the KIP that we will reformat the existing > >>>>>>>>>> classic group's `--members --verbose` as well, specifically the > >>>>>>>>>> "ASSIGNMENT" column to include the topic name? > >>>>>>>>>> > >>>>>>>>>> Thanks! > >>>>>>>>>> > >>>>>>>>>> On 2024/11/21 14:33:37 "Lianet M." wrote: > >>>>>>>>>>> Thanks for the updates PoAn! > >>>>>>>>>>> > >>>>>>>>>>> LM6. Just a nit, under the --describe --state --verbose the > >> header > >>>>>>> is > >>>>>>>>> fine > >>>>>>>>>>> but the example is still missing the --state argument. > >>>>>>>>>>> > >>>>>>>>>>> LM7. Under the Proposed changes for kafka-share-groups.sh, > should > >>>> we > >>>>>>>>>>> clearly mention that the KIP adds a new --verbose option? I > think > >>>>>>> it's > >>>>>>>>>>> confusing because it's presented as if the option already > exists > >>>> and > >>>>>>>>> we're > >>>>>>>>>>> only changing the output (which is the case for > >>>>>>> kafka-consumer-groups > >>>>>>>>> but > >>>>>>>>>>> not for kafka-share-groups) > >>>>>>>>>>> > >>>>>>>>>>> That's all on my side. Thanks! > >>>>>>>>>>> > >>>>>>>>>>> Lianet > >>>>>>>>>>> > >>>>>>>>>>> On Wed, Nov 20, 2024 at 11:12 PM PoAn Yang <yangp...@gmail.com > > > >>>>>>>> wrote: > >>>>>>>>>>> > >>>>>>>>>>>> Hi Lianet / Jeff, > >>>>>>>>>>>> > >>>>>>>>>>>> Thanks for review and suggestions. > >>>>>>>>>>>> > >>>>>>>>>>>> LM4: At group level, the protocol field is from > >>>>>>>>> ModernGroup#protocolType. > >>>>>>>>>>>> It’s a string. > >>>>>>>>>>>> The value is defined in different places like > >>>>>>>> ShareGroup#PROTOCOL_TYPE > >>>>>>>>> and > >>>>>>>>>>>> ConsumerProtocol#PROTOCOL_TYPE. > >>>>>>>>>>>> In KIP-1043 < > >>>>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >> > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=305171038#KIP1043:Administrationofgroups-kafka-groups.sh > >>>>>>>>>> , > >>>>>>>>>>>> the kafka-groups.sh also shows protocol like “classic” / > >>>>>>> “consumer” / > >>>>>>>>>>>> “share”. > >>>>>>>>>>>> I agree it’s better to use a type like GroupProtocol enum, > but I > >>>>>>>> would > >>>>>>>>>>>> like to align the format with kafka-groups.sh. > >>>>>>>>>>>> How about we use another Jira to add “SHARE” to GroupProtocol > >> and > >>>>>>>>> change > >>>>>>>>>>>> return type of ModernGroup#protocolType? > >>>>>>>>>>>> > >>>>>>>>>>>> LM5 / JK1: Sorry, I misunderstood LM3, so I deleted —state in > >> the > >>>>>>>>> title. > >>>>>>>>>>>> You’re correct. I would like to use `—describe —state > —verbose` > >>>> to > >>>>>>>> show > >>>>>>>>>>>> group level information. > >>>>>>>>>>>> For `—describe —verbose`, it will show output as same as > >>>> `—describe > >>>>>>>>>>>> —offsets —verbose`, > >>>>>>>>>>>> because `—describe` also shows output as same as `—describe > >>>>>>>> —offsets`. > >>>>>>>>>>>> > >>>>>>>>>>>> JK2: Yes, I only use consumer group in the sample output, but > >> the > >>>>>>>>> classic > >>>>>>>>>>>> group will use the same format as well. > >>>>>>>>>>>> > >>>>>>>>>>>> Thanks, > >>>>>>>>>>>> PoAn > >>>>>>>>>>>> > >>>>>>>>>>>>> On Nov 21, 2024, at 8:28 AM, Jeff Kim <jeffkb...@apache.org> > >>>>>>> wrote: > >>>>>>>>>>>>> > >>>>>>>>>>>>> Hi PoAn, > >>>>>>>>>>>>> > >>>>>>>>>>>>> Thanks for the KIP. I have some questions: > >>>>>>>>>>>>> > >>>>>>>>>>>>> JK1: (Realized this is similar to LM5) On `--describe > >> --verbose` > >>>>>>>>>>>> proposed changes - doesn't `--describe $group` default to > >>>> printing > >>>>>>>> the > >>>>>>>>>>>> offsets? Perhaps you're referring to the `--state` argument? > >>>> Also, > >>>>>>>>> would > >>>>>>>>>>>> that mean the default `--describe $group --verbose` command > >> would > >>>>>>> not > >>>>>>>>> print > >>>>>>>>>>>> the added field to `--offsets verbose` (leader-epoch) or would > >>>> it? > >>>>>>>>>>>>> > >>>>>>>>>>>>> JK2: Looking at ConsumerGroupCommand.java, the existing > >>>>>>> "ASSIGNMENT" > >>>>>>>>>>>> column under `--members --verbose` does group the topic > >>>> partitions > >>>>>>> by > >>>>>>>>> topic > >>>>>>>>>>>> but does not prefix the grouping with the topic name like > you're > >>>>>>>>> proposal: > >>>>>>>>>>>> "my_topic:0,1;new_topic:0,1". Should we do apply the same > format > >>>>>>> for > >>>>>>>>> the > >>>>>>>>>>>> classic group as well? > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> On 2024/11/20 21:32:41 "Lianet M." wrote: > >>>>>>>>>>>>>> Hello PoAn, just of couple more minor comments: > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> LM4. Regarding the new “protocol” field added to > >>>>>>> MemberDescription. > >>>>>>>>>>>> Should > >>>>>>>>>>>>>> we consider reusing the existing GroupProtocol enum instead > of > >>>>>>>>> String? > >>>>>>>>>>>>>> (It’s the one we use from the consumer side to refer to the > >>>>>>>> protocol > >>>>>>>>> in > >>>>>>>>>>>>>> use, just missing Share I notice). > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> LM5. Regarding the change to the output for > >>>>>>> kafka-consumer-groups, > >>>>>>>>> the > >>>>>>>>>>>>>> command shown does not include the —state option, but the > >>>> output > >>>>>>>>> shows > >>>>>>>>>>>>>> state info (state, #members, epochs). I would guess that we > >>>> want > >>>>>>> to > >>>>>>>>>>>> modify > >>>>>>>>>>>>>> the output only when we describe a group with the —state > >>>> —verbose > >>>>>>>>>>>> option, > >>>>>>>>>>>>>> is my understanding right? If my understanding is right > we’re > >>>>>>> just > >>>>>>>>>>>> missing > >>>>>>>>>>>>>> adding the —state in the example, and the KIP does not > >>>> introduce > >>>>>>>> any > >>>>>>>>>>>>>> changes to the —describe —verbose option. (If not, it would > >>>> mean > >>>>>>> a > >>>>>>>>>>>> bigger > >>>>>>>>>>>>>> change to the output of —describe —verbose which I expect is > >>>> not > >>>>>>>> the > >>>>>>>>>>>>>> intention?) > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Thanks! > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Lianet > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> On Wed, Nov 20, 2024 at 2:12 AM PoAn Yang < > yangp...@gmail.com > >>> > >>>>>>>>> wrote: > >>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Hi Chia-Ping, > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Thanks for the review and suggestions. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> CI0: Thanks for the reminder. Update validVersions in > >>>>>>>>>>>>>>> ConsumerGroupDescribeRequest to 0-1. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> CI1: Yes, I use `ConsumerGroupMember#useClassicProtocol` to > >>>>>>> check > >>>>>>>>>>>> whether > >>>>>>>>>>>>>>> a member in consumer group uses “classic” or “consumer” > >>>>>>> protocol. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> CI2: Yes, a member in share group always uses “share” > >>>> protocol. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> CI3: Add a table to show meaning of “classic”, “consumer”, > >> and > >>>>>>>>> “share” > >>>>>>>>>>>>>>> protocol. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> BTW, the vote thread is in > >>>>>>>>>>>>>>> > >>>>>>> https://lists.apache.org/thread/rb25tf75tzf4c7jqqldlo5jh9w8chsq6. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Thanks, > >>>>>>>>>>>>>>> PoAn > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> On Nov 20, 2024, at 11:46 AM, Chia-Ping Tsai < > >>>>>>>> chia7...@apache.org> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> hi PoAn > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> CI0: We have to bump the version of > >>>>>>> ConsumerGroupDescribeRequest > >>>>>>>>> as > >>>>>>>>>>>>>>> well, so server can distinguish the new and old behavior. > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> CI1: the type of new filed is string, so I guess you plan > to > >>>>>>> use > >>>>>>>>>>>>>>> `ConsumerGroupMember#useClassicProtocol` [0] flag to return > >>>>>>> either > >>>>>>>>>>>>>>> "classic" or "consumer", right? > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> CI2: `MemberDescription` is used by > `ShareGroupDescription` > >>>>>>> too, > >>>>>>>> so > >>>>>>>>>>>> the > >>>>>>>>>>>>>>> new filed protocol in shared group is always "shared", > right? > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> CI3: Could you consider adding a table to show the value > of > >>>> the > >>>>>>>>>>>> protocol > >>>>>>>>>>>>>>> field in each case? Andrew has a beautiful table in > KIP-1043 > >>>>>>> that > >>>>>>>>>>>> lists all > >>>>>>>>>>>>>>> possible protocol names. > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> [0] > >>>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >> > https://github.com/apache/kafka/blob/441a6d0b790f4a17b454caeea7588a6b90fbd9db/group-coordinator/src/main/java/org/apache/kafka/coordinator/group/modern/consumer/ConsumerGroupMember.java#L454 > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> Best, > >>>>>>>>>>>>>>>> Chia-Ping > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> On 2024/11/19 15:45:16 PoAn Yang wrote: > >>>>>>>>>>>>>>>>> Hi David, > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Thanks for the reminder. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> DJ4: Add related content to the KIP. > >>>>>>>>>>>>>>>>> Bump validVersions in ConsumerGroupDescribeResponse to > >>>> “0-1”. > >>>>>>>>>>>>>>>>> Add a new field “Protocol” to > >> ConsumerGroupDescribeResponse. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Thanks, > >>>>>>>>>>>>>>>>> PoAn > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> On Nov 19, 2024, at 3:57 PM, David Jacot > >>>>>>>>>>>> <dja...@confluent.io.INVALID> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> Hi PoAn, > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> DJ4: Could you please also include the required changes > to > >>>>>>> the > >>>>>>>>>>>>>>>>>> ConsumerGroupDescribed API in the public interface > >> section? > >>>>>>> We > >>>>>>>>>>>>>>> basically > >>>>>>>>>>>>>>>>>> need to bump the version, add the new field, etc. > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> Thanks, > >>>>>>>>>>>>>>>>>> David > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> On Mon, Nov 18, 2024 at 5:40 AM PoAn Yang < > >>>>>>> yangp...@gmail.com> > >>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Hi David, > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> DJ4: Add a new field protocol to MemberDescription, > >>>>>>>>>>>>>>>>>>> so the command line tool can show protocol information > >>>> when > >>>>>>>>> users > >>>>>>>>>>>>>>> describe > >>>>>>>>>>>>>>>>>>> members. > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> If there is no further suggestion, I will start a vote > >>>>>>> thread > >>>>>>>>>>>> today. > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Thanks, > >>>>>>>>>>>>>>>>>>> PoAn > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> On Nov 15, 2024, at 11:50 PM, David Jacot > >>>>>>>>>>>>>>> <dja...@confluent.io.INVALID> > >>>>>>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> Hi, > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> DJ2: Using "-" sounds good to me. > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> DJ3: That seems reasonable to me. > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> DJ4: Why not add it right now? I don't want to change > >> the > >>>>>>>>> output > >>>>>>>>>>>> of > >>>>>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>>>> tool too many times. > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> Best, > >>>>>>>>>>>>>>>>>>>> David > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>> On Fri, Nov 15, 2024 at 3:23 PM PoAn Yang < > >>>>>>>> yangp...@gmail.com> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> Hi David / Andrew, > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> Thanks for review. Thanks Andrew for picking up > >>>>>>>>>>>>>>> kafka-share-groups.sh > >>>>>>>>>>>>>>>>>>>>> implementation. > >>>>>>>>>>>>>>>>>>>>> I will handle kafka-consumer-groups.sh. > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> DJ3: After discussing with @Chia-Ping Tsai, we think > >>>> that > >>>>>>>>> using > >>>>>>>>>>>> new > >>>>>>>>>>>>>>>>>>> format > >>>>>>>>>>>>>>>>>>>>> is more clear. > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> The new format will be like > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >> > <topic-name1>:<partition-id1>,<partition-id2>;<topic-name2>:<partition-id1>,<partition-id2> > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> Using colon(:) to concat topic name and partition > IDs. > >>>>>>>>>>>>>>>>>>>>> Using comma(,) to concat partition IDs within same > >> topic > >>>>>>>> name. > >>>>>>>>>>>>>>>>>>>>> Using semicolon(;) to concat topic strings. > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> AS3: Fix it with kafka-share-groups.sh. Thanks. > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> If there is no further suggestion, I will start a > vote > >>>>>>>> thread > >>>>>>>>>>>> next > >>>>>>>>>>>>>>>>>>> Monday. > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> Thanks, > >>>>>>>>>>>>>>>>>>>>> PoAn > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> On Nov 14, 2024, at 9:05 PM, Andrew Schofield < > >>>>>>>>>>>>>>>>>>>>> andrew_schofield_j...@outlook.com> wrote: > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> Hi PoAn, > >>>>>>>>>>>>>>>>>>>>>> DJ2: I was just going to comment that "-" would be a > >>>> more > >>>>>>>>>>>>>>> appropriate > >>>>>>>>>>>>>>>>>>>>> missing value, but > >>>>>>>>>>>>>>>>>>>>>> you got there first. > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> AS3: The examples for kafka-share-groups.sh include > >>>>>>>>>>>>>>>>>>>>> kafka-consumer-groups.sh in the > >>>>>>>>>>>>>>>>>>>>>> command line. > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> If this is accepted in time, I'm happy to pick up > the > >>>>>>>>>>>>>>> implementation of > >>>>>>>>>>>>>>>>>>>>> the share groups > >>>>>>>>>>>>>>>>>>>>>> part of this if it helps. > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> Thanks, > >>>>>>>>>>>>>>>>>>>>>> Andrew > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> ________________________________________ > >>>>>>>>>>>>>>>>>>>>>> From: Frank Yang <yangp...@gmail.com> > >>>>>>>>>>>>>>>>>>>>>> Sent: 14 November 2024 10:48 > >>>>>>>>>>>>>>>>>>>>>> To: dev@kafka.apache.org <dev@kafka.apache.org> > >>>>>>>>>>>>>>>>>>>>>> Subject: Re: [DISCUSS] KIP-1099: Extend > >>>>>>>> kafka-consumer-groups > >>>>>>>>>>>>>>> command > >>>>>>>>>>>>>>>>>>>>> line tool to support new consumer group > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> Hi David, > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> Thanks for the review and suggestion! I would like > to > >>>> get > >>>>>>>>> this > >>>>>>>>>>>> in > >>>>>>>>>>>>>>> AK > >>>>>>>>>>>>>>>>>>> 4.0 > >>>>>>>>>>>>>>>>>>>>> as well. I will do my best. > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> DJ1: Update KIP to put GROUP-EPOCH and > >>>>>>>>> TARGET-ASSIGNMENT-EPOCH > >>>>>>>>>>>>>>> before > >>>>>>>>>>>>>>>>>>>>> #MEMBERS. > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> DJ2: I prefer to follow current missing column value > >>>> “-“. > >>>>>>>>>>>>>>> (reference < > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >> > https://github.com/apache/kafka/blob/18199028a672fd973ac37bf26316994babc2a6da/tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java#L92 > >>>>>>>>>>>>>>>>>>>>>> ) > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> DJ3: Update KIP to use CURRENT-EPOCH > >> CURRENT-ASSIGNMENT > >>>>>>>>>>>>>>> TARGET-EPOCH > >>>>>>>>>>>>>>>>>>>>> TARGET-ASSIGNMENT. > >>>>>>>>>>>>>>>>>>>>>> Remove GROUP-EPOCH. > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> For assignment value, it follows current output > >>>>>>> (reference > >>>>>>>> < > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >> > https://github.com/apache/kafka/blob/18199028a672fd973ac37bf26316994babc2a6da/tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java#L413-L418 > >>>>>>>>>>>>>>>>>>>> ). > >>>>>>>>>>>>>>>>>>>>> I think the form of `topicid-partitionid` is more > >> clear. > >>>>>>>>>>>>>>>>>>>>>> If we would like to use this form, I will update > both > >>>>>>>> output > >>>>>>>>> in > >>>>>>>>>>>>>>>>>>>>> kafka-consumer-groups.sh and kafka-share-groups.sh. > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> DJ4: It looks like DescribeGroupsResponseData only > has > >>>>>>>>> protocol > >>>>>>>>>>>>>>> type at > >>>>>>>>>>>>>>>>>>>>> group level. > >>>>>>>>>>>>>>>>>>>>>> Both DescribeGroupsResponseData and > >>>>>>>>>>>>>>> ConsumerGroupDescribeResponseData > >>>>>>>>>>>>>>>>>>>>> don’t have protocol at member level. > >>>>>>>>>>>>>>>>>>>>>> Could we use a followup to add it? > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> DJ5: Update KIP to put LEADER-EPOCH before > >>>>>>> CURRENT-OFFSET. > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>> Thanks, > >>>>>>>>>>>>>>>>>>>>>> PoAn > >>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>> On Nov 14, 2024, at 3:43 PM, David Jacot > >>>>>>>>>>>>>>> <dja...@confluent.io.INVALID > >>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>> Hi PoAn, > >>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>> Thanks for the KIP! I have a few minor > >>>>>>>> comments/suggestions: > >>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>> DJ1: In the output of `--describe --verbose`, I > would > >>>>>>>>> suggest > >>>>>>>>>>>>>>> putting > >>>>>>>>>>>>>>>>>>>>>>> `GROUP-EPOCH` and `TARGET-ASSIGNMENT-EPOCH` before > >>>>>>>>> `#MEMBERS`. > >>>>>>>>>>>>>>>>>>>>>>> DJ2: Continuing on the above, I assume that we will > >>>>>>> print > >>>>>>>>> out > >>>>>>>>>>>> N/A > >>>>>>>>>>>>>>> for > >>>>>>>>>>>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>>>>>>> fields not supported by classic groups. Is this > >>>> correct? > >>>>>>>>>>>>>>>>>>>>>>> DJ3: In the output of `--describe --members > >>>> --verbose`, > >>>>>>> I > >>>>>>>>>>>> wonder > >>>>>>>>>>>>>>> if we > >>>>>>>>>>>>>>>>>>>>>>> should use the following order and terms: > >>>> CURRENT-EPOCH > >>>>>>>>>>>>>>>>>>>>> CURRENT-ASSIGNMENT > >>>>>>>>>>>>>>>>>>>>>>> TARGET-EPOCH TARGET-ASSIGNMENT . I would remove the > >>>>>>>>> GROUP-EPOCH > >>>>>>>>>>>>>>>>>>> because > >>>>>>>>>>>>>>>>>>>>> it > >>>>>>>>>>>>>>>>>>>>>>> is already in the group description. The value > `(0)` > >>>>>>> used > >>>>>>>>> for > >>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>>>>>>> assignment is incorrect. Here I suppose that we > will > >>>>>>> print > >>>>>>>>> out > >>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>>> list > >>>>>>>>>>>>>>>>>>>>> of > >>>>>>>>>>>>>>>>>>>>>>> partitions in the form of `topicid-partitionid`. > >>>>>>>>>>>>>>>>>>>>>>> DJ4: Continuing on the above, I wonder if we should > >>>> also > >>>>>>>> add > >>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>>>>> protocol > >>>>>>>>>>>>>>>>>>>>>>> used `classic` or `consumer`. For context, it is > >>>>>>> possible > >>>>>>>> to > >>>>>>>>>>>> have > >>>>>>>>>>>>>>>>>>>>> `classic` > >>>>>>>>>>>>>>>>>>>>>>> members and `consumer` members in a `consumer` > group > >>>>>>>> during > >>>>>>>>> an > >>>>>>>>>>>>>>> online > >>>>>>>>>>>>>>>>>>>>>>> upgrade from the classic protocol to the consumer > >>>>>>>> protocol. > >>>>>>>>>>>> Having > >>>>>>>>>>>>>>>>>>> this > >>>>>>>>>>>>>>>>>>>>>>> information may be handy for administrators. What > do > >>>> you > >>>>>>>>> think? > >>>>>>>>>>>>>>>>>>>>>>> DJ5: In the output of `--describe --offsets > >>>> --verbose`, > >>>>>>> I > >>>>>>>>> would > >>>>>>>>>>>>>>>>>>> suggest > >>>>>>>>>>>>>>>>>>>>>>> putting `LEADER-EPOCH` closer to `CURRENT-OFFSET`. > >>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>> It would be great if we could get this one in AK > 4.0 > >>>> as > >>>>>>> it > >>>>>>>>>>>>>>> changes the > >>>>>>>>>>>>>>>>>>>>>>> output of the command. > >>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>> Thanks, > >>>>>>>>>>>>>>>>>>>>>>> DJ > >>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>> On Fri, Nov 1, 2024 at 7:40 AM Frank Yang < > >>>>>>>>> yangp...@gmail.com> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> Hi Sean / Andrew / Lianet, > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> Thanks for all your review and suggestions. > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> AS1, LM1, LM4: Change to add KIP-848 information > >> when > >>>>>>>> users > >>>>>>>>>>>> give > >>>>>>>>>>>>>>>>>>>>> —verbose > >>>>>>>>>>>>>>>>>>>>>>>> option. > >>>>>>>>>>>>>>>>>>>>>>>> —describe —verbose: shows group epoch and target > >>>>>>>> assignment > >>>>>>>>>>>>>>> epoch. > >>>>>>>>>>>>>>>>>>>>>>>> —describe —members —verbose: shows above > >> information, > >>>>>>>>> member > >>>>>>>>>>>>>>> epoch, > >>>>>>>>>>>>>>>>>>> and > >>>>>>>>>>>>>>>>>>>>>>>> target assignment. > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> AS2: Change to use MEMBER-EPOCH to align with > >> KIP-848 > >>>>>>>>>>>> definition. > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> LM2: For classic group, it doesn’t have epoch, so > I > >>>> use > >>>>>>>>>>>> Optional > >>>>>>>>>>>>>>>>>>>>> fields in > >>>>>>>>>>>>>>>>>>>>>>>> ConsumerGroupDescription. > >>>>>>>>>>>>>>>>>>>>>>>> For share group, it relies on KIP-848. It must > have > >>>>>>>> epoch, > >>>>>>>>> so > >>>>>>>>>>>> I > >>>>>>>>>>>>>>> use > >>>>>>>>>>>>>>>>>>> int > >>>>>>>>>>>>>>>>>>>>>>>> fields in ShareGroupDescription. > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> LM3: Remove —state change. We can get group level > >>>>>>>>> information > >>>>>>>>>>>> by > >>>>>>>>>>>>>>>>>>>>> —describe > >>>>>>>>>>>>>>>>>>>>>>>> —verbose. > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> SQ1: Add LEADER-EPOCH when users give —describe > >>>>>>> —offsets > >>>>>>>>>>>>>>> —verbose. > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> Thanks. > >>>>>>>>>>>>>>>>>>>>>>>> PoAn > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>> On Nov 1, 2024, at 5:08 AM, Lianet M. < > >>>>>>>> liane...@gmail.com > >>>>>>>>>> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>> Hello Frank, thanks for the KIP! A few comments: > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>> LM1. I strongly agree with Andrew's suggestion of > >>>>>>> moving > >>>>>>>>> this > >>>>>>>>>>>>>>> into a > >>>>>>>>>>>>>>>>>>>>>>>>> --verbose option. I expect someone would only > >>>> attempt > >>>>>>> to > >>>>>>>>> make > >>>>>>>>>>>>>>> sense > >>>>>>>>>>>>>>>>>>> of > >>>>>>>>>>>>>>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>>>>>>>>> epochs while debugging an issue, not while trying > >> to > >>>>>>>> view > >>>>>>>>> the > >>>>>>>>>>>>>>> group > >>>>>>>>>>>>>>>>>>> or > >>>>>>>>>>>>>>>>>>>>>>>>> member's info. (Also member-epoch makes more > sense > >>>> to > >>>>>>>> me, > >>>>>>>>>>>> even > >>>>>>>>>>>>>>> more > >>>>>>>>>>>>>>>>>>>>> if we > >>>>>>>>>>>>>>>>>>>>>>>>> end up agreeing in a --verbose). Related to both > >>>>>>> issues, > >>>>>>>>> my > >>>>>>>>>>>>>>> take is > >>>>>>>>>>>>>>>>>>>>> that > >>>>>>>>>>>>>>>>>>>>>>>>> whoever is close to the protocol will expect > >>>>>>>> member-epoch, > >>>>>>>>>>>>>>> whoever > >>>>>>>>>>>>>>>>>>> is > >>>>>>>>>>>>>>>>>>>>> not > >>>>>>>>>>>>>>>>>>>>>>>>> will probably won't even need to see the epochs > at > >>>>>>> all. > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>> LM2. Why are the epochs defined as Optional > (don't > >>>> we > >>>>>>>>> expect > >>>>>>>>>>>> to > >>>>>>>>>>>>>>>>>>> always > >>>>>>>>>>>>>>>>>>>>>>>> have > >>>>>>>>>>>>>>>>>>>>>>>>> them? with 0 initially, defined on the broker > side > >>>> for > >>>>>>>> the > >>>>>>>>>>>> group > >>>>>>>>>>>>>>>>>>> ones, > >>>>>>>>>>>>>>>>>>>>>>>> and > >>>>>>>>>>>>>>>>>>>>>>>>> client side for the member) > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>> LM3. Why is the KIP including the –state option > in > >>>> the > >>>>>>>>>>>> proposed > >>>>>>>>>>>>>>>>>>>>> changes? > >>>>>>>>>>>>>>>>>>>>>>>> ( > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >> > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=327977411#KIP1099:Extendkafkaconsumergroupscommandlinetooltosupportnewconsumergroup---state > >>>>>>>>>>>>>>>>>>>>>>>>> ). > >>>>>>>>>>>>>>>>>>>>>>>>> I get that the output would change in that > example, > >>>>>>> but > >>>>>>>>> it’s > >>>>>>>>>>>> not > >>>>>>>>>>>>>>>>>>>>> because > >>>>>>>>>>>>>>>>>>>>>>>> of > >>>>>>>>>>>>>>>>>>>>>>>>> any change to the –state option itself. It's > >> because > >>>>>>> of > >>>>>>>>> the > >>>>>>>>>>>>>>> change > >>>>>>>>>>>>>>>>>>>>>>>> proposed > >>>>>>>>>>>>>>>>>>>>>>>>> to the –described (required with the --state), > and > >>>> the > >>>>>>>>>>>> changes > >>>>>>>>>>>>>>> to > >>>>>>>>>>>>>>>>>>>>>>>>> --describe are already explained above (seems > >>>>>>> confusing, > >>>>>>>>> got > >>>>>>>>>>>> me > >>>>>>>>>>>>>>>>>>>>> looking > >>>>>>>>>>>>>>>>>>>>>>>> for > >>>>>>>>>>>>>>>>>>>>>>>>> a change to the state filter which seemed > >>>> unrelated). > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>> LM4. Group epoch and target assignment epoch are > >>>>>>>>> conceptually > >>>>>>>>>>>>>>> at the > >>>>>>>>>>>>>>>>>>>>>>>> group > >>>>>>>>>>>>>>>>>>>>>>>>> level. vs member epoch that lands at a member > >> level. > >>>>>>> So > >>>>>>>>>>>> wonder > >>>>>>>>>>>>>>> if we > >>>>>>>>>>>>>>>>>>>>>>>> should > >>>>>>>>>>>>>>>>>>>>>>>>> show them accordingly (ex. using the --verbose > >>>> option) > >>>>>>>>>>>>>>>>>>>>>>>>> –describe –verbose => shows group epoch and > target > >>>>>>>>> assignment > >>>>>>>>>>>>>>> epoch > >>>>>>>>>>>>>>>>>>>>>>>>> –describe –members –verbose => shows member > >>>>>>>> epoch > >>>>>>>>>>>>>>> (along > >>>>>>>>>>>>>>>>>>>>>>>>> with group epoch and target assignment epoch) > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>> Thanks! > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>> Lianet > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>> On Thu, Oct 31, 2024 at 7:30 AM Andrew Schofield > < > >>>>>>>>>>>>>>>>>>>>>>>>> andrew_schofield_j...@outlook.com> wrote: > >>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> Hi PoAn, > >>>>>>>>>>>>>>>>>>>>>>>>>> Thanks for the KIP. I have a few comments. > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> AS1: It seems to me that these new additions are > >>>> most > >>>>>>>>>>>> useful to > >>>>>>>>>>>>>>>>>>>>> people > >>>>>>>>>>>>>>>>>>>>>>>>>> trying to understand > >>>>>>>>>>>>>>>>>>>>>>>>>> the progress of rebalancing in quite some > detail. > >>>> The > >>>>>>>>>>>>>>> information > >>>>>>>>>>>>>>>>>>> is > >>>>>>>>>>>>>>>>>>>>>>>>>> really not understandable > >>>>>>>>>>>>>>>>>>>>>>>>>> for most users who do not have deep knowledge of > >>>>>>>>>>>> KIP-848/932. > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> As a result, I suggest for kafka-share-groups.sh > >>>> that > >>>>>>>> you > >>>>>>>>>>>> add a > >>>>>>>>>>>>>>>>>>>>>>>> --members > >>>>>>>>>>>>>>>>>>>>>>>>>> --verbose option > >>>>>>>>>>>>>>>>>>>>>>>>>> and only include the new information in the > output > >>>>>>> for > >>>>>>>>> that > >>>>>>>>>>>>>>> option, > >>>>>>>>>>>>>>>>>>>>>>>> rather > >>>>>>>>>>>>>>>>>>>>>>>>>> than changing the > >>>>>>>>>>>>>>>>>>>>>>>>>> non-verbose --members output. > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> I also make a similar suggestion for > >>>>>>>>>>>> kafka-consumer-groups.sh > >>>>>>>>>>>>>>>>>>>>> --members > >>>>>>>>>>>>>>>>>>>>>>>>>> and only add the > >>>>>>>>>>>>>>>>>>>>>>>>>> new information for the --verbose output. > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> AS2: I strongly suggest that you use > MEMBER-EPOCH > >>>>>>>>> instead of > >>>>>>>>>>>>>>>>>>>>>>>>>> CONSUMER-EPOCH. > >>>>>>>>>>>>>>>>>>>>>>>>>> I think it's more confusing not following the > >>>>>>>>> terminology of > >>>>>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>>>>> KIPs. > >>>>>>>>>>>>>>>>>>>>>>>> For > >>>>>>>>>>>>>>>>>>>>>>>>>> one thing, > >>>>>>>>>>>>>>>>>>>>>>>>>> we already have "member" in the admin client > such > >>>> as > >>>>>>>>>>>>>>>>>>>>> MemberDescription. > >>>>>>>>>>>>>>>>>>>>>>>>>> It's not a > >>>>>>>>>>>>>>>>>>>>>>>>>> new term. > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> Thanks, > >>>>>>>>>>>>>>>>>>>>>>>>>> Andrew > >>>>>>>>>>>>>>>>>>>>>>>>>> ________________________________________ > >>>>>>>>>>>>>>>>>>>>>>>>>> From: PoAn Yang <pay...@apache.org> > >>>>>>>>>>>>>>>>>>>>>>>>>> Sent: 25 October 2024 13:55 > >>>>>>>>>>>>>>>>>>>>>>>>>> To: dev@kafka.apache.org <dev@kafka.apache.org> > >>>>>>>>>>>>>>>>>>>>>>>>>> Subject: Re: [DISCUSS] KIP-1099: Extend > >>>>>>>>>>>> kafka-consumer-groups > >>>>>>>>>>>>>>>>>>> command > >>>>>>>>>>>>>>>>>>>>>>>> line > >>>>>>>>>>>>>>>>>>>>>>>>>> tool to support new consumer group > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> Hi Lucas, > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> Thanks for the review! > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> 1) Yes, I add related change for > >>>>>>> kafka-share-groups.sh > >>>>>>>> to > >>>>>>>>>>>> the > >>>>>>>>>>>>>>> KIP. > >>>>>>>>>>>>>>>>>>>>> Could > >>>>>>>>>>>>>>>>>>>>>>>>>> you take a look? Thanks for the suggestion. > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> 2) We use CONSUMER-ID as member ID. If we use > >>>>>>>>> MEMBER-EPOCH > >>>>>>>>>>>>>>> here, > >>>>>>>>>>>>>>>>>>>>> users > >>>>>>>>>>>>>>>>>>>>>>>> may > >>>>>>>>>>>>>>>>>>>>>>>>>> confuse what is different between CONSUMER and > >>>>>>> MEMBER. > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> Thanks, > >>>>>>>>>>>>>>>>>>>>>>>>>> PoAn > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> On 2024/10/23 13:28:17 Lucas Brutschy wrote: > >>>>>>>>>>>>>>>>>>>>>>>>>>> Hi Frank, > >>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>> thanks for the KIP! > >>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>> 1) For consistency, should we do the same for > >>>>>>>>>>>>>>>>>>>>>>>>>>> kafka-share-groups.sh, ShareGroupDescription, > >>>> etc. ? > >>>>>>>>> Even > >>>>>>>>>>>> if > >>>>>>>>>>>>>>> we do > >>>>>>>>>>>>>>>>>>>>> not > >>>>>>>>>>>>>>>>>>>>>>>>>>> implement it right now if the share group > >>>>>>>> implementation > >>>>>>>>>>>> may > >>>>>>>>>>>>>>> still > >>>>>>>>>>>>>>>>>>>>> be > >>>>>>>>>>>>>>>>>>>>>>>>>>> incomplete, it may make sense to include it in > >> the > >>>>>>>> KIP. > >>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>> 2) Why call it CONSUMER-EPOCH, not > MEMBER-EPOCH? > >>>>>>> That > >>>>>>>>> would > >>>>>>>>>>>>>>> seem > >>>>>>>>>>>>>>>>>>>>> more > >>>>>>>>>>>>>>>>>>>>>>>>>>> consistent. > >>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>> Cheers, > >>>>>>>>>>>>>>>>>>>>>>>>>>> Lucas > >>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>> On Wed, Oct 23, 2024 at 2:41 PM Frank Yang < > >>>>>>>>>>>>>>> yangp...@gmail.com> > >>>>>>>>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi all, > >>>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> I would like to kick off the discussion of > >>>>>>> KIP-1099. > >>>>>>>>> This > >>>>>>>>>>>> KIP > >>>>>>>>>>>>>>>>>>>>> enhances > >>>>>>>>>>>>>>>>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>>>>>>>>>>>> kafka-consumer-groups tools to include state > >>>> which > >>>>>>> is > >>>>>>>>>>>>>>> introduced > >>>>>>>>>>>>>>>>>>> by > >>>>>>>>>>>>>>>>>>>>>>>>>> KIP-848. > >>>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> KIP-1099: Extend kafka-consumer-groups command > >>>> line > >>>>>>>>> tool > >>>>>>>>>>>> to > >>>>>>>>>>>>>>>>>>> support > >>>>>>>>>>>>>>>>>>>>>>>> new > >>>>>>>>>>>>>>>>>>>>>>>>>>>> consumer group - Apache Kafka - Apache > Software > >>>>>>>>> Foundation > >>>>>>>>>>>>>>>>>>>>>>>>>>>> < > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group > >>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> cwiki.apache.org > >>>>>>>>>>>>>>>>>>>>>>>>>>>> < > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group > >>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> [image: favicon.ico] > >>>>>>>>>>>>>>>>>>>>>>>>>>>> < > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group > >>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> < > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group > >>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>> Thank you, > >>>>>>>>>>>>>>>>>>>>>>>>>>>> PoAn > >>>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>>> > >>>>> > >>>> > >> > >> > >> >