Class TransactionStore

java.lang.Object
org.h2.mvstore.tx.TransactionStore

public class TransactionStore extends Object
A store that supports concurrent MVCC read-committed transactions.
  • Field Details

    • UNDO_LOG_NAME_PREFIX

      public static final String UNDO_LOG_NAME_PREFIX
      The prefix for undo log entries.
      See Also:
  • Constructor Details

    • TransactionStore

      public TransactionStore(MVStore store)
      Create a new transaction store.
      Parameters:
      store - the store
    • TransactionStore

      public TransactionStore(MVStore store, DataType<?> dataType)
    • TransactionStore

      public TransactionStore(MVStore store, MetaType<?> metaDataType, DataType<?> dataType, int timeoutMillis)
      Create a new transaction store.
      Parameters:
      store - the store
      metaDataType - the data type for type registry map values
      dataType - default data type for map keys and values
      timeoutMillis - lock acquisition timeout in milliseconds, 0 means no wait
  • Method Details

    • init

      public void init()
      Initialize the store without any RollbackListener.
      See Also:
    • init

      public void init(TransactionStore.RollbackListener listener)
      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

      public boolean hasMap(String name)
      Check whether a given map exists.
      Parameters:
      name - the map name
      Returns:
      true if it exists
    • getOpenTransactions

      public List<Transaction> 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

      public Transaction 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 rollback
      timeoutMillis - to wait for a blocking transaction
      ownerId - of the owner (Session?) to be reported by getBlockerId
      isolationLevel - of new transaction
      Returns:
      the transaction
    • openMap

      public <K, V> MVMap<K,V> openMap(String name, DataType<K> keyType, DataType<V> valueType)
      Open the map with the given name.
      Type Parameters:
      K - the key type
      V - the value type
      Parameters:
      name - the map name
      keyType - the key type
      valueType - the value type
      Returns:
      the map