Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
0.8.1
-
None
-
None
Description
After using the controller for a while as part of 0.8, I think it might be worth looking into merging the separate state machines into a single unified one. The reason is most events end up invoking state transitions on both partitions and replicas. Initially, the thought of separating the two was to handle cases which only touch one state machine (for example, changing the replication factor or changing the number of partitions online). However, these features also would end up touching both state machines. The complexity comes from the correct ordering that one has to ensure between the operations on both these state machines (KAFKA-831). Due to this, some state transitions are unable to batch RPCs and/or zookeeper writes/reads since they need to happen in each of the state machines separately. Since this will significantly change controller code, I'm filing this for 0.8.1