You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Onur Karaman (JIRA)" <ji...@apache.org> on 2017/05/16 20:44:04 UTC

[jira] [Created] (KAFKA-5258) move all partition and replica state transition rules into a map

Onur Karaman created KAFKA-5258:
-----------------------------------

             Summary: move all partition and replica state transition rules into a map
                 Key: KAFKA-5258
                 URL: https://issues.apache.org/jira/browse/KAFKA-5258
             Project: Kafka
          Issue Type: Sub-task
            Reporter: Onur Karaman
            Assignee: Onur Karaman
            Priority: Minor


Today the PartitionStateMachine and ReplicaStateMachine defines and asserts the valid state transitions inline for each state, looking something like:
{code}
private def handleStateChange(...) {
  targetState match {
    case stateA => {
      assertValidPreviousStates(topicAndPartition, List(stateX, stateY, stateZ), stateA)
      // actual work
    }
    case stateB => {
      assertValidPreviousStates(topicAndPartition, List(stateD, stateE), stateB)
      // actual work
    }
  }
}
{code}
It would be cleaner to move all partition and replica state transition rules into a map and simply do the assertion at the top of the handleStateChange method like so:
{code}
private val validPreviousStates: Map[State, Set[State]] = ...
private def handleStateChange(...) {
  assertValidTransition(targetState)
  targetState match {
    case stateA => {
      // actual work
    }
    case stateB => {
      // actual work
    }
  }
}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)