...
Compatibility, deprecation, and migration plan
The features in this KIP RPC versions will be supported if negotiated using the ApiVersions
of all of the voters and observers is greater than the versions described here. If the leader has a replica UUID for all of the voters then this KIP is supported by all of the voters RPC. KRaft will use the kraft.version
to determine which version of KRaftVersionRecord
and VotersRecord
to write to the log and which version of QuorumStateData
to write to the quorum-state
file.
Downgrading the kraft.version
from 1 to 0 is not possible. This is mainly due to the fact that kraft.version
1 writes data to the log and snapshot that gets replicated to all of the replicas.
When to remove controller.quorum.voters
It is safe for the operator to remove the configuration for controller.qourumquorum.voters
when the kraft.version
has been upgrade to version 1. All of the Kafka nodes will expose the ignored-static-voter
metrics. If all of the Kafka nodes expose a 1 for this metrics, it is safe to remove controller.quorum.voters
from the node configuration and specify the controller.quorum.bootstrap.servers
instead.
Test plan
This KIP will be tested using unittest, integration tests, system test, simulation tests and TLA+ specification.
...