Package org.h2.mvstore.tx
Class CommitDecisionMaker<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 Summary
FieldsFields inherited from class org.h2.mvstore.MVMap.DecisionMaker
DEFAULT, PUT, REMOVE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondecide
(VersionedValue<V> existingValue, VersionedValue<V> providedValue) Makes a decision about how to proceed with the update.void
reset()
Resets internal state (if any) of a this DecisionMaker to it's initial state.<T extends VersionedValue<V>>
TselectValue
(T existingValue, T providedValue) Provides revised value for insert/update based on original input value and value currently existing in the map.(package private) void
setUndoKey
(long undoKey) toString()
Methods inherited from class org.h2.mvstore.MVMap.DecisionMaker
decide
-
Field Details
-
undoKey
private long undoKey -
decision
-
-
Constructor Details
-
CommitDecisionMaker
CommitDecisionMaker()
-
-
Method Details
-
setUndoKey
void setUndoKey(long undoKey) -
decide
Description copied from class:MVMap.DecisionMaker
Makes a decision about how to proceed with the update.- Specified by:
decide
in classMVMap.DecisionMaker<VersionedValue<V>>
- Parameters:
existingValue
- value currently exists in the mapprovidedValue
- 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
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 classMVMap.DecisionMaker<VersionedValue<V>>
- Type Parameters:
T
- value type- Parameters:
existingValue
- value currently exists in the mapprovidedValue
- 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 classMVMap.DecisionMaker<VersionedValue<V>>
-
toString
-