[ 
https://issues.apache.org/jira/browse/KAFKA-13696?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jose Armando Garcia Sancio updated KAFKA-13696:
-----------------------------------------------
    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.
{code:java}
case class State(
 val pendingIsrChange: Option[Either[ExpandingISR, Shrink]
 val pendingLeaderRecoveryStateChange: boolean // Can only transition from 
RECOVERING to RECOVERED
){code}
There are no pending changes if {{pendingIsrChange.isEmpty && 
!pendingRecoveryChange}} is true.

> Topic partition leader should always send AlterPartition when transitioning 
> from RECOVERING TO RECOVERED
> --------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-13696
>                 URL: https://issues.apache.org/jira/browse/KAFKA-13696
>             Project: Kafka
>          Issue Type: Task
>            Reporter: Jose Armando Garcia Sancio
>            Assignee: Jose Armando Garcia Sancio
>            Priority: Major
>
> 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.
> {code:java}
> case class State(
>  val pendingIsrChange: Option[Either[ExpandingISR, Shrink]
>  val pendingLeaderRecoveryStateChange: boolean // Can only transition from 
> RECOVERING to RECOVERED
> ){code}
> There are no pending changes if {{pendingIsrChange.isEmpty && 
> !pendingRecoveryChange}} is true.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to