Class CheckPointState

java.lang.Object
org.apache.storm.spout.CheckPointState

public class CheckPointState extends Object
Captures the current state of the transaction in CheckpointSpout. The state transitions are as follows.
                  ROLLBACK(tx2)
               <-------------                  PREPARE(tx2)                     COMMIT(tx2)
 COMMITTED(tx1)-------------> PREPARING(tx2) --------------> COMMITTING(tx2) -----------------> COMMITTED (tx2)

 

During recovery, if a previous transaction is in PREPARING state, it is rolled back since all bolts in the topology might not have prepared (saved) the data for commit. If the previous transaction is in COMMITTING state, it is rolled forward (committed) since some bolts might have already committed the data.

During normal flow, the state transitions from PREPARING to COMMITTING to COMMITTED. In case of failures the prepare/commit operation is retried.

  • Constructor Details

    • CheckPointState

      public CheckPointState(long txid, CheckPointState.State state)
    • CheckPointState

      public CheckPointState()
  • Method Details

    • getTxid

      public long getTxid()
    • getState

      public CheckPointState.State getState()
    • nextState

      public CheckPointState nextState(boolean recovering)
      Get the next state based on this checkpoint state.
      Parameters:
      recovering - if in recovering phase
      Returns:
      the next checkpoint state based on this state.
    • nextAction

      public CheckPointState.Action nextAction(boolean recovering)
      Get the next action to perform based on this checkpoint state.
      Parameters:
      recovering - if in recovering phase
      Returns:
      the next action to perform based on this state
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object