[ https://issues.apache.org/jira/browse/KAFKA-18865?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
José Armando García Sancio updated KAFKA-18865: ----------------------------------------------- Description: Handling of kraft.version is a bit tricky. The kraft.version that is exposed by the kraft client is potentially an uncommitted value. In some cases kraft is interested in the latest value (irrespective of committed vs uncommitted) but in some case kraft should use the latest commit value. For example, kraft should use the latest committed value when exposing it outside of the kraft client and when determining which version of quorum-state to serialize and persist. But KRaft should use the latest value (irrespective of committed vs uncommitted) when determining which control version to persist to the log itself. * Uses of latest version ** Most of kraft internal logic. E.g. went to write VotersRecord ** Controller's use of kraft version. Needed to fence or deny registration that don't support the latest version * Uses of committed version ** ApiVersion response ** Version to use when writing quorum-state file was: Handling of kraft.version is a bit tricky. The kraft.version that is exposed by the kraft client is potentially an uncommitted value. In some cases kraft is interested in the latest value (irrespective of committed vs uncommitted) but in some case kraft should use the latest commit value. For example, kraft should use the latest committed value when exposing it outside of the kraft client and when determining which version of quorum-state to serialize and persist. But KRaft should use the latest value (irrespective of committed vs uncommitted) when determining which control version to persist to the log itself. > Improve KRaft handling of kraft.version > --------------------------------------- > > Key: KAFKA-18865 > URL: https://issues.apache.org/jira/browse/KAFKA-18865 > Project: Kafka > Issue Type: Sub-task > Components: kraft > Reporter: José Armando García Sancio > Assignee: José Armando García Sancio > Priority: Major > > Handling of kraft.version is a bit tricky. > The kraft.version that is exposed by the kraft client is potentially an > uncommitted value. > In some cases kraft is interested in the latest value (irrespective of > committed vs uncommitted) but in some case kraft should use the latest commit > value. > For example, kraft should use the latest committed value when exposing it > outside of the kraft client and when determining which version of > quorum-state to serialize and persist. But KRaft should use the latest value > (irrespective of committed vs uncommitted) when determining which control > version to persist to the log itself. > * Uses of latest version > ** Most of kraft internal logic. E.g. went to write VotersRecord > ** Controller's use of kraft version. Needed to fence or deny registration > that don't support the latest version > * Uses of committed version > ** ApiVersion response > ** Version to use when writing quorum-state file -- This message was sent by Atlassian Jira (v8.20.10#820010)