org.h2.mvstore.db
Class TransactionStore

java.lang.Object
  extended by org.h2.mvstore.db.TransactionStore

public class TransactionStore
extends java.lang.Object

A store that supports concurrent MVCC read-committed transactions.


Nested Class Summary
static class TransactionStore.ArrayType
          A data type that contains an array of objects with the specified data types.
static class TransactionStore.Change
          A change in a map.
static class TransactionStore.Transaction
          A transaction.
static class TransactionStore.TransactionMap<K,V>
          A map that supports transactions.
static class TransactionStore.VersionedValueType
          The value type for a versioned value.
 
Constructor Summary
TransactionStore(MVStore store)
          Create a new transaction store.
TransactionStore(MVStore store, DataType dataType)
          Create a new transaction store.
 
Method Summary
 TransactionStore.Transaction begin()
          Begin a new transaction.
 void close()
          Close the transaction store.
 java.util.List<TransactionStore.Transaction> getOpenTransactions()
          Get the list of unclosed transactions that have pending writes.
 void init()
          Initialize the store.
 void logUndo(TransactionStore.Transaction t, long logId)
          Remove a log entry.
 void setMaxTransactionId(int max)
          Set the maximum transaction id, after which ids are re-used.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TransactionStore

public TransactionStore(MVStore store)
Create a new transaction store.

Parameters:
store - the store

TransactionStore

public TransactionStore(MVStore store,
                        DataType dataType)
Create a new transaction store.

Parameters:
store - the store
dataType - the data type for map keys and values
Method Detail

init

public void 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.


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

getOpenTransactions

public java.util.List<TransactionStore.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 TransactionStore.Transaction begin()
Begin a new transaction.

Returns:
the transaction

logUndo

public void logUndo(TransactionStore.Transaction t,
                    long logId)
Remove a log entry.

Parameters:
t - the transaction
logId - the log id