...
The following configuration options will be added:
Option | Unit | Default | Description |
---|
delete.stale.topic.delay.ms | ms | 14400 (4 hours) | When a FULL or INCREMENTAL LeaderAndIsrRequest is received and the request does not contain a partition that exists on a broker or a broker's topic ID does not match the ID in the request, a deletion event will be staged for that partition which will complete after delete.stale.topic.delay.ms milliseconds. |
Compatibility with KIP-500
...
Problem: KIP-595 describes a Vote Request which is used to elect the controller. Currently KIP-595 contains the topic name as part of the protocol.
Solution: Change Vote to use topic ID field. Use a sentinel ID reserved only for this topic before its ID is known.
...
Vote will be changed to replace topic name with topic ID, and will use a sentinel topic ID if no topic ID has been assigned already. See above for more information on sentinel topic IDs.
VoteRequest v0
VoteRequest (Version 0) => cluster_id [topics] cluster_id => STRING topics => topic_id* [partitions] topic_id* => UUID partitions => partition_index candidate_epoch candidate_id last_offset_epoch last_offset partition_index => INT32 candidate_epoch => INT32 candidate_id => INT32 last_offset_epoch => INT32 last_offset => INT64
|
VoteResponse v0
VoteResponse (Version 0) => error_code [topics] cluster_id => INT16 topics => topic_id* [partitions] topic_id* => UUID partitions => partition_index error_code leader_id leader_epoch vote_granted partition_index => INT32 error_code => INT16 leader_id => INT32 leader_epoch => INT32 voted_granted => BOOL
|
BeginQuorumEpoch
BeginQuorumEpoch will replace the topic name field with the topic id field
BeginQuorumEpochRequest v0
BeginQuorumEpochRequest (Version 0) => cluster_id [topics] cluster_id => STRING topics => topic_id* [partitions] topic_id* => UUID partitions => partition_index leader_id leader_epoch partition_index => INT32 leader_id => INT32 leader_epoch => INT32
|
BeginQuorumEpochResponse v0
BeginQuorumEpochResponse (Version 0) => error_code [topics] cluster_id => INT16 topics => topic_id* [partitions] topic_id* => UUID partitions => partition_index error_code leader_id leader_epoch partition_index => INT32 error_code => INT16 leader_id => INT32 leader_epoch => INT32
|
EndQuorumEpoch
EndQuorumEpoch will replace the topic name field with the topic id field
EndQuorumEpochRequest v0
EndQuorumEpochRequest (Version 0) => cluster_id [topics] cluster_id => STRING topics => topic_id* [partitions] topic_id* => UUID partitions => partition_index replica_id leader_id leader_epoch [preferred_successors] partition_index => INT32 replica_id => INT32 leader_id => INT32 leader_epoch => INT32 preferred_successors => INT32
|
EndQuorumEpochResponse v0
EndQuorumEpochResponse (Version 0) => error_code [topics] cluster_id => INT16 topics => topic_id* [partitions] topic_id* => UUID partitions => partition_index error_code leader_id leader_epoch partition_index => INT32 error_code => INT16 leader_id => INT32 leader_epoch => INT32
|
Compatibility, Deprecation, and Migration Plan
...