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

Alyssa Huang updated KAFKA-19975:
---------------------------------
    Description: 
The reassignment completion logic currently enforces that all target replicas 
are present in the in-sync replica set (ISR). When an unhealthy broker (unable 
to keep up with replication and therefore unable to remain in ISR) is in both 
the current and target replica sets, and is not added/removed in the 
reassignment, it still prevents the reassignment from completing. 

 

e.g. the following reassignments are examples of what would fail to complete if 
replica 2 were unhealthy and unable to join ISR (even though completing the 
reassignment would not change the number of replicas in ISR)
[0, 1, 2] ->  [0, 1, 2, 3] 

[0, 1, 2] ->  [1, 2, 3] 

[0, 1, 2] ->  [2, 3, 4] 

 

We should allow reassignments to complete if there are replicas in the target 
replica set that are not in ISR and not part of the adding set. This should be 
safe because the reassignment completing would not cause the ISR size to 
shrink. (If the target replica set size is smaller than the current replica set 
size, then we will continue to enforce all replicas in the target replica set 
are in ISR to avoid accidentally shrinking the ISR due to reassignment 
completing)

  was:
The reassignment completion logic currently enforces that all target replicas 
are present in the in-sync replica set (ISR). When an unhealthy broker (unable 
to keep up with replication and therefore remain in ISR) is in both the current 
and target replica sets, and is not added/removed in the reassignment, it still 
prevents the reassignment from completing. 

 

e.g. the following reassignments are examples of what would fail to complete if 
replica 2 were unhealthy and unable to join ISR (even though completing the 
reassignment would not change the number of replicas in ISR)
[0, 1, 2] ->  [0, 1, 2, 3] 

[0, 1, 2] ->  [1, 2, 3] 

[0, 1, 2] ->  [2, 3, 4] 

 

We should allow reassignments to complete if there are replicas in the target 
replica set that are not in ISR and not part of the adding set. This should be 
safe because the reassignment completing would not cause the ISR size to 
shrink. (If the target replica set size is smaller than the current replica set 
size, then we will continue to enforce all replicas in the target replica set 
are in ISR to avoid accidentally shrinking the ISR due to reassignment 
completing)


> Reassignment completion blocked by non-ISR replicas
> ---------------------------------------------------
>
>                 Key: KAFKA-19975
>                 URL: https://issues.apache.org/jira/browse/KAFKA-19975
>             Project: Kafka
>          Issue Type: Improvement
>            Reporter: Alyssa Huang
>            Assignee: Deepak Goyal
>            Priority: Major
>
> The reassignment completion logic currently enforces that all target replicas 
> are present in the in-sync replica set (ISR). When an unhealthy broker 
> (unable to keep up with replication and therefore unable to remain in ISR) is 
> in both the current and target replica sets, and is not added/removed in the 
> reassignment, it still prevents the reassignment from completing. 
>  
> e.g. the following reassignments are examples of what would fail to complete 
> if replica 2 were unhealthy and unable to join ISR (even though completing 
> the reassignment would not change the number of replicas in ISR)
> [0, 1, 2] ->  [0, 1, 2, 3] 
> [0, 1, 2] ->  [1, 2, 3] 
> [0, 1, 2] ->  [2, 3, 4] 
>  
> We should allow reassignments to complete if there are replicas in the target 
> replica set that are not in ISR and not part of the adding set. This should 
> be safe because the reassignment completing would not cause the ISR size to 
> shrink. (If the target replica set size is smaller than the current replica 
> set size, then we will continue to enforce all replicas in the target replica 
> set are in ISR to avoid accidentally shrinking the ISR due to reassignment 
> completing)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to