Package org.h2.mvstore.tx
Class TransactionStore
java.lang.Object
org.h2.mvstore.tx.TransactionStore
A store that supports concurrent MVCC read-committed transactions.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA change in a map.static interfaceThis listener can be registered with the transaction to be notified of every compensating change during transaction rollback. -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionTransactionStore(MVStore store) Create a new transaction store.TransactionStore(MVStore store, DataType<?> dataType) TransactionStore(MVStore store, MetaType<?> metaDataType, DataType<?> dataType, int timeoutMillis) Create a new transaction store. -
Method Summary
Modifier and TypeMethodDescriptionbegin()Begin a new transaction.begin(TransactionStore.RollbackListener listener, int timeoutMillis, int ownerId, IsolationLevel isolationLevel) Begin a new transaction.voidclose()Close the transaction store.voidCommit all transactions that are in the committed state, and rollback all open transactions.Get the list of unclosed transactions that have pending writes.booleanCheck whether a given map exists.voidinit()Initialize the store without any RollbackListener.voidinit(TransactionStore.RollbackListener listener) Initialize the store.<K,V> MVMap<K, V> Open the map with the given name.voidsetMaxTransactionId(int max) Set the maximum transaction id, after which ids are re-used.
-
Field Details
-
UNDO_LOG_NAME_PREFIX
The prefix for undo log entries.- See Also:
-
-
Constructor Details
-
TransactionStore
Create a new transaction store.- Parameters:
store- the store
-
TransactionStore
-
TransactionStore
public TransactionStore(MVStore store, MetaType<?> metaDataType, DataType<?> dataType, int timeoutMillis) Create a new transaction store.- Parameters:
store- the storemetaDataType- the data type for type registry map valuesdataType- default data type for map keys and valuestimeoutMillis- lock acquisition timeout in milliseconds, 0 means no wait
-
-
Method Details
-
init
public void init()Initialize the store without any RollbackListener.- See Also:
-
init
Initialize the store. This is needed before a transaction can be opened. If the transaction store is corrupt, this method can throw an exception, in which case the store can only be used for reading.- Parameters:
listener- to notify about transaction rollback
-
endLeftoverTransactions
public void endLeftoverTransactions()Commit all transactions that are in the committed state, and rollback all open transactions. -
setMaxTransactionId
public void setMaxTransactionId(int max) Set the maximum transaction id, after which ids are re-used. If the old transaction is still in use when re-using an old id, the new transaction fails.- Parameters:
max- the maximum id
-
hasMap
Check whether a given map exists.- Parameters:
name- the map name- Returns:
- true if it exists
-
getOpenTransactions
Get the list of unclosed transactions that have pending writes.- Returns:
- the list of transactions (sorted by id)
-
close
public void close()Close the transaction store. -
begin
Begin a new transaction.- Returns:
- the transaction
-
begin
public Transaction begin(TransactionStore.RollbackListener listener, int timeoutMillis, int ownerId, IsolationLevel isolationLevel) Begin a new transaction.- Parameters:
listener- to be notified in case of a rollbacktimeoutMillis- to wait for a blocking transactionownerId- of the owner (Session?) to be reported by getBlockerIdisolationLevel- of new transaction- Returns:
- the transaction
-
openMap
Open the map with the given name.- Type Parameters:
K- the key typeV- the value type- Parameters:
name- the map namekeyType- the key typevalueType- the value type- Returns:
- the map
-