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