Details
-
Task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
When becoming the leader of a RECOVERING partition the partition leader should model that transition from RECOVERING to RECOVERED has not been committed to the active controller and that it should always attempt to send an AlterPartition request when performing this transition. This uncommitted state has the following state space:
(Expanding ISR OR Shrinking ISR) AND Pending Recovered
This can be model using sum and product types. E.g.
case class State( val pendingIsrChange: Option[Either[ExpandingISR, Shrink] val pendingLeaderRecoveryStateChange: boolean // Can only transition from RECOVERING to RECOVERED )
There are no pending changes if pendingIsrChange.isEmpty && !pendingRecoveryChange is true.
Attachments
Issue Links
- is blocked by
-
KAFKA-13587 Implement unclean leader election in KIP-704
- Resolved