Hi, Justine, Thanks for the updated KIP. A few more comments.
10. Could we describe what RPCs group.coordinator.version controls? 12. --metadata METADATA is not removed from kafka-features. Do we have a justification for this? If so, should we add that to kafka-storage to be consistent? 14. The KIP has both transaction.protocol.version vs transaction.version. What's the correct feature name? Jun On Mon, Mar 25, 2024 at 4:54 PM Justine Olshan <jols...@confluent.io.invalid> wrote: > I've updated the KIP to include this CLI. For now, I've moved the new api > to the server as a rejected alternative. > > It seems like we can keep the mapping in the tool. Given that we also need > to do the same validation for using multiple --feature flags (the request > will look the same to the server), we can have the --release-version flag. > > I think that closes the main discussions. Please let me know if there is > any further discussion I missed. > > Justine > > On Mon, Mar 25, 2024 at 4:44 PM Justine Olshan <jols...@confluent.io> > wrote: > > > Hi Jose, > > > > Sorry for the typos. I think you figured out what I meant. > > > > I can make a new API. There is a risk of creating a ton of very similar > > APIs though. Even the ApiVersions api is confusing with its supported and > > finalized features fields. I wonder if there is a middle ground here. > > I can have the storage tool and features tool rely on the feature and not > > query the server. Colin seemed to be against that. > > > Anyway your idea of putting the info on the server side is probably for > > the best. > > > > --release-version can work with the downgrade tool too. I just didn't > > think I needed to directly spell that out. I can though. > > > > I wish we weren't splitting this conversation among the two threads. :( I > > tried to get this out so it could cover all KIPs. Having this on separate > > threads makes getting this consensus even harder than it already is. > > From what I can tell your KIP's text matches this. Is the expectation > that > > the added flags will be done as part of this KIP or your KIP? I don't > > really have a strong opinion about --release-version so maybe it should > > have been part of your KIP all along. > > > > > To me version 0 doesn't necessarily mean that the feature is not > > enabled. For example, for kraft.version, version 0 means the protocol > > prior to KIP-853. Version 0 is the currently implemented version of > > the KRaft protocol. > > > > This is what Colin told me in our previous discussions. I don't really > > feel too strongly about the semantics here. > > > > So it seems like the only real undecided item here is whether we should > > have this new api query the server or rely on the information being built > > in the tool. > > I will update the KIP to include the CLI command to get the information. > > > > Justine > > > > On Mon, Mar 25, 2024 at 4:19 PM José Armando García Sancio > > <jsan...@confluent.io.invalid> wrote: > > > >> Hi Justine, > >> > >> Thanks for the update. See my comments below. > >> > >> On Mon, Mar 25, 2024 at 2:51 PM Justine Olshan > >> <jols...@confluent.io.invalid> wrote: > >> > I've updated the KIP with the changes I mentioned earlier. I have not > >> yet > >> > removed the --feature-version flag from the upgrade tool. > >> > >> What's the "--feature-version" flag? This is the first time I see it > >> mentioned and I don't see it in the KIP. Did you mean > >> "--release-version"? > >> > >> > Please take a look at the API to get the versions for a given > >> > metadata version. Right now I'm using ApiVersions request and > >> specifying a > >> > metadata version. The supported versions are then supplied in the > >> > ApiVersions response. > >> > There were tradeoffs with this approach. It is a pretty minimal > change, > >> but > >> > reusing the API means that it could be confusing (ie, the ApiKeys will > >> be > >> > supplied in the response but not needed.) I considered making a whole > >> new > >> > API, but that didn't seem necessary for this use. > >> > >> I agree that this is extremely confusing and we shouldn't overload the > >> ApiVersions RPC to return this information. The KIP doesn't mention > >> how it is going to use this API. Do you need to update the Admin > >> client to include this information? > >> > >> Having said this, as you mentioned in the KIP the kafka-storage tool > >> needs this information and that tool cannot assume that there is a > >> running server it can query (send an RPC). Can the kafka-features use > >> the same mechanism used by kafka-storage without calling into a > >> broker? > >> > >> re: "It will work just like the storage tool and upgrade all the > >> features to a version" > >> > >> Does this mean that --release-version cannot be used with > >> "kafka-features downgrade"? > >> > >> re: Consistency with KIP-853 > >> > >> Jun and I have been having a similar conversation in the discussion > >> thread for KIP-853. From what I can tell both changes are compatible. > >> Do you mind taking a look at these two sections and confirming that > >> they don't contradict your KIP? > >> 1. > >> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-853%3A+KRaft+Controller+Membership+Changes#KIP853:KRaftControllerMembershipChanges-kafka-storage > >> 2. > >> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-853%3A+KRaft+Controller+Membership+Changes#KIP853:KRaftControllerMembershipChanges-kafka-features > >> > >> re: nit "For MVs that existed before these features, we map the new > >> features to version 0 (no feature enabled)." > >> > >> To me version 0 doesn't necessarily mean that the feature is not > >> enabled. For example, for kraft.version, version 0 means the protocol > >> prior to KIP-853. Version 0 is the currently implemented version of > >> the KRaft protocol. > >> > >> Thanks, > >> -- > >> -José > >> > > >