Top Description Fields Constructors Methods
org.hsqldb

public Class TransactionManagerMVCC

extends TransactionManagerCommon
implements TransactionManager
Class Inheritance
All Implemented Interfaces
org.hsqldb.TransactionManager
Imports
org.hsqldb.error.Error, .ErrorCode, org.hsqldb.lib.HsqlDeque, .LongDeque, org.hsqldb.persist.PersistentStore

Manages rows involved in transactions
Author
Fred Toussi (fredt@users dot sourceforge.net)
Since
2.0.0
Version
2.7.3

Field Summary

Modifier and TypeField and Description
pack-priv Session
pack-priv HsqlDeque<RowAction[]>
pack-priv LongDeque
pack-priv boolean
pack-priv long
pack-priv long
pack-priv int
pack-priv long
pack-priv long
Inherited from org.hsqldb.TransactionManagerCommon:
catalogNameListdatabasehasExpiredliveTransactionSCNslobSessionlocksystemChangeNumbertableReadLockstableWriteLockstransactionCounttxModelwriteLock

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public RowAction
addDeleteAction(Session session, Table table, PersistentStore store, Row row, int[] changedColumns)

Implements org.hsqldb.TransactionManager.addDeleteAction.

public void
addInsertAction(Session session, Table table, PersistentStore store, Row row, int[] changedColumns)

Implements org.hsqldb.TransactionManager.addInsertAction.

pack-priv void
addToCommittedQueue(Session session, RowAction[] list)

add a list of actions to the end of queue

public void
beginAction(Session session, Statement cs)

Implements org.hsqldb.TransactionManager.beginAction.

Update statement if out-of-date

public void
beginActionResume(Session session)

Implements org.hsqldb.TransactionManager.beginActionResume.

add session to the end of queue when a transaction starts

pack-priv void
public void
public boolean
canRead(Session session, PersistentStore store, Row row, int mode, int[] colMap)

public boolean
public void
private void
private void
endTransaction(Session session)

remove session from queue when a transaction ends and expire any committed transactions that are no longer required.

pack-priv void
public long
public int
public boolean
public boolean
public boolean
pack-priv void
mergeExpiredTransactions(Session session)

expire all committed transactions that are no longer in scope

public boolean
public void
resetSession(Session session, Session targetSession, long statementTimestamp, int mode)

Overrides org.hsqldb.TransactionManagerCommon.resetSession.

Implements org.hsqldb.TransactionManager.resetSession.

public void
public void
public void
rollbackPartial(Session session, int start, long timestamp)

Implements org.hsqldb.TransactionManager.rollbackPartial.

rollback the row actions from start index in list and the given timestamp

public void
public void
public void
Inherited from org.hsqldb.TransactionManagerCommon:
abortActionadjustLobUsagebeginTransactionCommoncheckDeadlockcheckDeadlockendActionTPLfinaliseRowsgetFirstLiveTransactionTimestampgetNextSystemChangeNumbergetRowActionListgetTransactionAndPreSessionsgetTransactionSessionshasLockslockTablesTPLmergeTransactionpersistCommitprepareResetresetLatchesresetLatchesMidTransactionresetLockssetWaitedSessionsTPLsetWaitingSessionTPLunlockReadTablesTPLunlockTablesTPLupdateCurrentStatement

Field Detail

catalogWriteSessionback to summary
pack-priv Session catalogWriteSession
committedTransactionsback to summary
pack-priv HsqlDeque<RowAction[]> committedTransactions
committedTransactionSCNsback to summary
pack-priv LongDeque committedTransactionSCNs
isLockedModeback to summary
pack-priv boolean isLockedMode
lockSessionIdback to summary
pack-priv long lockSessionId
lockTxTsback to summary
pack-priv long lockTxTs
redoCountback to summary
pack-priv int redoCount
unlockSessionIdback to summary
pack-priv long unlockSessionId
unlockTxTsback to summary
pack-priv long unlockTxTs

Constructor Detail

TransactionManagerMVCCback to summary
public TransactionManagerMVCC(Database db)

Method Detail

addDeleteActionback to summary
public RowAction addDeleteAction(Session session, Table table, PersistentStore store, Row row, int[] changedColumns)

Implements org.hsqldb.TransactionManager.addDeleteAction.

addInsertActionback to summary
public void addInsertAction(Session session, Table table, PersistentStore store, Row row, int[] changedColumns)

Implements org.hsqldb.TransactionManager.addInsertAction.

addToCommittedQueueback to summary
pack-priv void addToCommittedQueue(Session session, RowAction[] list)

add a list of actions to the end of queue

beginActionback to summary
public void beginAction(Session session, Statement cs)

Implements org.hsqldb.TransactionManager.beginAction.

Update statement if out-of-date

beginActionResumeback to summary
public void beginActionResume(Session session)

Implements org.hsqldb.TransactionManager.beginActionResume.

add session to the end of queue when a transaction starts

beginActionTPLback to summary
pack-priv void beginActionTPL(Session session, Statement cs)
beginTransactionback to summary
public void beginTransaction(Session session)

Implements org.hsqldb.TransactionManager.beginTransaction.

canReadback to summary
public boolean canRead(Session session, PersistentStore store, Row row, int mode, int[] colMap)
commitTransactionback to summary
public boolean commitTransaction(Session session)

Implements org.hsqldb.TransactionManager.commitTransaction.

completeActionsback to summary
public void completeActions(Session session)

Implements org.hsqldb.TransactionManager.completeActions.

countDownLatchesback to summary
private void countDownLatches(Session session)
endTransactionback to summary
private void endTransaction(Session session)

remove session from queue when a transaction ends and expire any committed transactions that are no longer required. remove transactions ended before the first timestamp in liveTransactionsSession queue

endTransactionTPLback to summary
pack-priv void endTransactionTPL(Session session)

Overrides org.hsqldb.TransactionManagerCommon.endTransactionTPL.

getSystemChangeNumberback to summary
public long getSystemChangeNumber()

Implements org.hsqldb.TransactionManager.getSystemChangeNumber.

getTransactionControlback to summary
public int getTransactionControl()

Implements org.hsqldb.TransactionManager.getTransactionControl.

is2PLback to summary
public boolean is2PL()

Implements org.hsqldb.TransactionManager.is2PL.

isMVCCback to summary
public boolean isMVCC()

Implements org.hsqldb.TransactionManager.isMVCC.

isMVRowsback to summary
public boolean isMVRows()

Implements org.hsqldb.TransactionManager.isMVRows.

mergeExpiredTransactionsback to summary
pack-priv void mergeExpiredTransactions(Session session)

expire all committed transactions that are no longer in scope

prepareCommitActionsback to summary
public boolean prepareCommitActions(Session session)

Implements org.hsqldb.TransactionManager.prepareCommitActions.

resetSessionback to summary
public void resetSession(Session session, Session targetSession, long statementTimestamp, int mode)

Overrides org.hsqldb.TransactionManagerCommon.resetSession.

Implements org.hsqldb.TransactionManager.resetSession.

rollbackback to summary
public void rollback(Session session)

Implements org.hsqldb.TransactionManager.rollback.

rollbackActionback to summary
public void rollbackAction(Session session)

Implements org.hsqldb.TransactionManager.rollbackAction.

rollbackPartialback to summary
public void rollbackPartial(Session session, int start, long timestamp)

Implements org.hsqldb.TransactionManager.rollbackPartial.

rollback the row actions from start index in list and the given timestamp

rollbackSavepointback to summary
public void rollbackSavepoint(Session session, int index)

Implements org.hsqldb.TransactionManager.rollbackSavepoint.

setSystemChangeNumberback to summary
public void setSystemChangeNumber(long ts)

Implements org.hsqldb.TransactionManager.setSystemChangeNumber.

setTransactionControlback to summary
public void setTransactionControl(Session session, int mode)

Overrides org.hsqldb.TransactionManagerCommon.setTransactionControl.

Implements org.hsqldb.TransactionManager.setTransactionControl.