Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • The node is part of the voter set and is registered
  • The node is part of the voter set and is not registered
  • The node is not part of the voter set and is registered
  • The node is not part of the voter set and is not registered

Compatibility, Deprecation, and Migration Plan

Because this KIP is introducing a new metadata record alongside a new MetadataVersion, it means that existing clusters who have a stale controller registration will not be able to unregister it, and unblock feature upgrades thereafter. 

One approach is for the controller to allow unregistering controllers non-durably if the metadata version does not support the UnregisterControllerRecord. This gives operators a path to migrate existing clusters onto a MV that supports this record, where they can persist the unregister record.

Another approach is to not add a UnregisterControllerRecord. One idea is to use a sentinel value for brokerEpoch in UnregisterBrokerRecord to signify unregistering a controller. This means we could durably persist unregistering controllers without requiring a MV upgrade to do so.

Test Plan

Add an integration test for unregistering a controller in both static quorum and dynamic quorum clusters. 

...