|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.sleepycat.je.txn.Locker
com.sleepycat.je.txn.BasicLocker
A concrete Locker that simply tracks locks and releases them when operationEnd is called.
| Field Summary |
| Fields inherited from class com.sleepycat.je.txn.Locker |
defaultNoWait, deleteInfo, envImpl, handleLockToHandleMap, handleToHandleLockMap, id, lockManager, lockTimeOutMillis, readUncommittedDefault, thread |
| Constructor Summary | |
BasicLocker(EnvironmentImpl env)
Creates a BasicLocker. |
|
| Method Summary | |
(package private) void |
addLock(Long nodeId,
Lock lock,
LockType type,
LockGrantType grantStatus,
MemoryBudget mb)
Add a lock to set owned by this transaction. |
protected void |
checkState(boolean ignoreCalledByAbort)
|
LockStats |
collectStats(LockStats stats)
stats |
boolean |
createdNode(long nodeId)
Always false for this txn. |
protected long |
generateId(TxnManager txnManager)
BasicLockers always have a fixed id, because they are never used for recovery. |
boolean |
getAbortKnownDeleted(long nodeId)
|
long |
getAbortLsn(long nodeId)
|
long |
getOwnerAbortLsn(long nodeId)
Get the abort LSN for this node in the txn that owns the lock on this node. |
Txn |
getTxnLocker()
No transactional locker is available. |
Locker |
getWriteOwnerLocker(long nodeId)
Get the txn that owns the lock on this node. |
boolean |
isReadCommittedIsolation()
Is never read-committed isolation. |
boolean |
isSerializableIsolation()
Is never serializable isolation. |
boolean |
isTransactional()
Is never transactional. |
LockResult |
lock(long nodeId,
LockType lockType,
DatabaseImpl database)
Get a lock on the given nodeId, using the configured noWait and timeout. |
void |
markDeleteAtTxnEnd(DatabaseImpl db,
boolean deleteAtCommit,
MemoryBudget mb)
Database operations like remove and truncate leave behind residual DatabaseImpls that must be purged at transaction commit or abort. |
(package private) void |
moveWriteToReadLock(long nodeId,
Lock lock,
MemoryBudget mb)
A lock is being demoted. |
Locker |
newNonTxnLocker()
Creates a new instance of this txn for the same environment. |
LockGrantType |
nonBlockingReadLock(long nodeId,
DatabaseImpl database)
Get a non-blocking read lock on this nodeId and return LockGrantType.DENIED if it is not granted. |
void |
operationEnd()
Release locks at the end of the transaction. |
void |
operationEnd(boolean operationOK)
Release locks at the end of the transaction. |
void |
registerCursor(CursorImpl cursor)
This txn doesn't store cursors. |
void |
releaseNonTxnLocks()
Releases all locks, since all locks held by this locker are non-transactional. |
(package private) void |
removeLock(long nodeId,
Lock lock)
Remove a lock from the set owned by this txn. |
void |
setHandleLockOwner(boolean ignore,
Database dbHandle,
boolean dbIsClosing)
Transfer any MapLN locks to the db handle. |
void |
unRegisterCursor(CursorImpl cursor)
This txn doesn't store cursors. |
| Methods inherited from class com.sleepycat.je.txn.Locker |
addDeleteInfo, addToHandleMaps, demoteLock, dumpLockTable, getId, getLockTimeout, getTxnStartMillis, getTxnTimeOut, getWaitingFor, isHandleLockTransferrable, isReadUncommittedDefault, isTimedOut, operationEnd, releaseLock, rememberHandleWriteLock, setLockTimeout, setOnlyAbortable, setTxnTimeout, setWaitingFor, sharesLocksWith, toString, transferHandleLock, transferHandleLockToHandle, unregisterHandle |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public BasicLocker(EnvironmentImpl env)
throws DatabaseException
| Method Detail |
protected long generateId(TxnManager txnManager)
generateId in class Locker
protected void checkState(boolean ignoreCalledByAbort)
throws DatabaseException
checkState in class LockerDatabaseException
public LockResult lock(long nodeId,
LockType lockType,
DatabaseImpl database)
throws DatabaseException
lock in class LockerDatabaseException
public LockGrantType nonBlockingReadLock(long nodeId,
DatabaseImpl database)
throws DatabaseException
DatabaseException
public Locker getWriteOwnerLocker(long nodeId)
throws DatabaseException
DatabaseException
public long getOwnerAbortLsn(long nodeId)
throws DatabaseException
DatabaseExceptionpublic boolean isTransactional()
isTransactional in class Lockerpublic boolean isSerializableIsolation()
isSerializableIsolation in class Lockerpublic boolean isReadCommittedIsolation()
isReadCommittedIsolation in class Lockerpublic Txn getTxnLocker()
getTxnLocker in class Locker
public Locker newNonTxnLocker()
throws DatabaseException
newNonTxnLocker in class LockerDatabaseException
public void releaseNonTxnLocks()
throws DatabaseException
releaseNonTxnLocks in class LockerDatabaseException
public void operationEnd()
throws DatabaseException
operationEnd in class LockerDatabaseException
public void operationEnd(boolean operationOK)
throws DatabaseException
operationEnd in class LockeroperationOK - is whether the operation succeeded, since
that may impact ending behavior. (i.e for AutoTxn)
DatabaseException
public void setHandleLockOwner(boolean ignore,
Database dbHandle,
boolean dbIsClosing)
throws DatabaseException
setHandleLockOwner in class LockerDatabaseException
public void registerCursor(CursorImpl cursor)
throws DatabaseException
registerCursor in class LockerDatabaseException
public void unRegisterCursor(CursorImpl cursor)
throws DatabaseException
unRegisterCursor in class LockerDatabaseException
public long getAbortLsn(long nodeId)
throws DatabaseException
getAbortLsn in class LockerDatabaseException
public boolean getAbortKnownDeleted(long nodeId)
throws DatabaseException
getAbortKnownDeleted in class LockerDatabaseException
public void markDeleteAtTxnEnd(DatabaseImpl db,
boolean deleteAtCommit,
MemoryBudget mb)
throws DatabaseException
Locker
markDeleteAtTxnEnd in class LockerDatabaseException
void addLock(Long nodeId,
Lock lock,
LockType type,
LockGrantType grantStatus,
MemoryBudget mb)
throws DatabaseException
addLock in class LockerDatabaseException
void removeLock(long nodeId,
Lock lock)
throws DatabaseException
removeLock in class LockerDatabaseException
public boolean createdNode(long nodeId)
throws DatabaseException
createdNode in class LockerDatabaseException
void moveWriteToReadLock(long nodeId,
Lock lock,
MemoryBudget mb)
moveWriteToReadLock in class Locker
public LockStats collectStats(LockStats stats)
throws DatabaseException
collectStats in class LockerDatabaseException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||