[ https://issues.apache.org/jira/browse/KAFKA-1028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13918871#comment-13918871 ]
Andrew Olson commented on KAFKA-1028: ------------------------------------- Patch has been updated with the suggested changes. Note that I made one additional change which was found to be necessary after rebasing against the latest trunk code (detected by integration test failures). It appears that the recent KAFKA-1235 changes result in a Leader of -1 (none) and empty ISR being saved for all partitions after all brokers in the cluster have been shutdown using a controlled shutdown. This essentially forces an unclean leader election to occur when a broker is subsequently restarted. If we have the configuration set to disallow unclean elections, then we have permanently blocked our ability to restore a leader. To address this, I've added logic that prevents the ISR from being updated to an empty set for any topics that do not allow unclean election. The last surviving member of the ISR will be preserved in Zookeeper in the event that a final, lone leader broker goes offline -- allowing this previous leader to resume its leader role when it comes back online. The partition leader is still updated to -1, which is not problematic. Please review lines 975-986 of KafkaController and let me know if this change makes sense. > per topic configuration of preference for consistency over availability > ----------------------------------------------------------------------- > > Key: KAFKA-1028 > URL: https://issues.apache.org/jira/browse/KAFKA-1028 > Project: Kafka > Issue Type: Improvement > Reporter: Scott Clasen > Assignee: Neha Narkhede > Attachments: KAFKA-1028.patch, KAFKA-1028_2014-01-30_13:45:30.patch, > KAFKA-1028_2014-03-03_18:48:43.patch > > > As discussed with Neha on the ML. > It should be possible to configure a topic to disallow unclean leader > election, thus preventing the situation where committed messages can be > discarded once a failed leader comes back online in a situation where it was > the only ISR. > This would open kafka to additional usecases where the possibility of > committted messages being discarded is unacceptable. -- This message was sent by Atlassian JIRA (v6.2#6252)