Class CommitDecisionMaker<V>


  • final class CommitDecisionMaker<V>
    extends MVMap.DecisionMaker<VersionedValue<V>>
    Class CommitDecisionMaker makes a decision during post-commit processing about how to transform uncommitted map entry into committed one, based on undo log information.
    • Field Detail

      • undoKey

        private long undoKey
    • Constructor Detail

      • CommitDecisionMaker

        CommitDecisionMaker()
    • Method Detail

      • setUndoKey

        void setUndoKey​(long undoKey)
      • decide

        public MVMap.Decision decide​(VersionedValue<V> existingValue,
                                     VersionedValue<V> providedValue)
        Description copied from class: MVMap.DecisionMaker
        Makes a decision about how to proceed with the update.
        Specified by:
        decide in class MVMap.DecisionMaker<VersionedValue<V>>
        Parameters:
        existingValue - value currently exists in the map
        providedValue - original input value
        Returns:
        PUT if a new value need to replace existing one or a new value to be inserted if there is none REMOVE if existing value should be deleted ABORT if update operation should be aborted or repeated later REPEAT if update operation should be repeated immediately
      • selectValue

        public <T extends VersionedValue<V>> T selectValue​(T existingValue,
                                                           T providedValue)
        Description copied from class: MVMap.DecisionMaker
        Provides revised value for insert/update based on original input value and value currently existing in the map. This method is only invoked after call to decide(), if it returns PUT.
        Overrides:
        selectValue in class MVMap.DecisionMaker<VersionedValue<V>>
        Type Parameters:
        T - value type
        Parameters:
        existingValue - value currently exists in the map
        providedValue - original input value
        Returns:
        value to be used by insert/update
      • reset

        public void reset()
        Description copied from class: MVMap.DecisionMaker
        Resets internal state (if any) of a this DecisionMaker to it's initial state. This method is invoked whenever concurrent update failure is encountered, so we can re-start update process.
        Overrides:
        reset in class MVMap.DecisionMaker<VersionedValue<V>>
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object