[
https://issues.apache.org/jira/browse/KAFKA-5028?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15987101#comment-15987101
]
Onur Karaman commented on KAFKA-5028:
-------------------------------------
Shortly after check-in, I noticed a bug: the patch has
onPreferredReplicaElection keep the line calling
topicDeletionManager.markTopicIneligibleForDeletion but removes the line
calling topicDeletionManager.resumeDeletionForTopics. I will address this in
KAFKA-5107
> convert kafka controller to a single-threaded event queue model
> ---------------------------------------------------------------
>
> Key: KAFKA-5028
> URL: https://issues.apache.org/jira/browse/KAFKA-5028
> Project: Kafka
> Issue Type: Sub-task
> Reporter: Onur Karaman
> Assignee: Onur Karaman
> Fix For: 0.11.0.0
>
>
> The goal of this ticket is to improve controller maintainability by
> simplifying the controller's concurrency semantics. The controller code has a
> lot of shared state between several threads using several concurrency
> primitives. This makes the code hard to reason about.
> This ticket proposes we convert the controller to a single-threaded event
> queue model. We add a new controller thread which processes events held in an
> event queue. Note that this does not mean we get rid of all threads used by
> the controller. We merely delegate all work that interacts with controller
> local state to this single thread. With only a single thread accessing and
> modifying the controller local state, we no longer need to worry about
> concurrent access, which means we can get rid of the various concurrency
> primitives used throughout the controller.
> Performance is expected to match existing behavior since the bulk of the
> existing controller work today already happens sequentially in the ZkClient’s
> single ZkEventThread.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)