[ 
https://issues.apache.org/jira/browse/KAFKA-1096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14039470#comment-14039470
 ] 

Sriharsha Chintalapani commented on KAFKA-1096:
-----------------------------------------------

Updated reviewboard https://reviews.apache.org/r/22496/diff/
 against branch origin/trunk

> An old controller coming out of long GC could update its epoch to the latest 
> controller's epoch
> -----------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-1096
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1096
>             Project: Kafka
>          Issue Type: Bug
>          Components: controller
>    Affects Versions: 0.8.0
>            Reporter: Swapnil Ghike
>            Assignee: Sriharsha Chintalapani
>             Fix For: 0.8.2
>
>         Attachments: KAFKA-1096.patch, KAFKA-1096_2014-06-20_15:27:44.patch
>
>
> If a controller GCs for too long, we could have two controllers in the 
> cluster. The controller epoch is supposed to minimize the damage in such a 
> situation, as the brokers will reject the requests sent by the controller 
> with an older epoch.
> When the old controller is still in long GC, a new controller could be 
> elected. This will fire ControllerEpochListener on the old controller. When 
> it comes out of GC, its ControllerEpochListener will update its own epoch to 
> the new controller's epoch. So both controllers are now able to send out 
> requests with the same controller epoch until the old controller's 
> handleNewSession() can execute in the controller lock. 
> ControllerEpochListener does not seem necessary, so we can probably delete it.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to