On Wed, Sep 29, 2021, at 10:34, David Arthur wrote:
> Hey all,
>
> I'd like to start a discussion around upgrades for KRaft. This design does
> not cover any of the ZooKeeper to KRaft migration (which will be covered in
> a future KIP).
>
> The proposal includes the addition of a "metadata.version" feature flag and
> deprecates the IBP. A procedure for downgrades is also included in the KIP.
>
> https://cwiki.apache.org/confluence/x/WAxACw
>
> Thanks!
> David

Hi David,

Thanks for the KIP! It's good to see us finding a use for the feature flag 
mechanism.

Since this is the first use of the mechanism, I think we should take some time 
to fix some issues with the original KIP, before the design gets "set in 
stone," so to speak.

1. It is not necessary to have two version numbers for each feature flag. I 
believe the rationale for adding this is that a few features would find it 
useful. However, those features can just define two flags (x_min and x_max). So 
I think each feature should have only one feature level number rather than a 
min and a max. This will simplify a lot of things (including your KIP...)

2. kafka-features.sh should use the more modern Argparse4J format rather than 
the old school "everything is a separate flag" format. This would allow us to 
have subcommands. For example, we could have an "upgrade" subcommand, a "nodes" 
subcommand, etc.

Check out kafka-storage.sh for an example of how this can work. There are three 
subcommands (info, format, random-uuid) and they each have a separate set of 
flags that they take. For example, "kafka-storage.sh format" takes an 
--ignore-formatted flag, but this is not valid for "kafka-storage.sh info".

best,
Colin

Reply via email to