public class DummyLockManager extends LockManager
lockTableLatches, nLockTables, TOTAL_LOCKIMPL_OVERHEAD, TOTAL_THINLOCKIMPL_OVERHEAD| Constructor and Description |
|---|
DummyLockManager(EnvironmentImpl envImpl,
LockManager superiorLockManager) |
| Modifier and Type | Method and Description |
|---|---|
(package private) LockAttemptResult |
attemptLock(java.lang.Long lsn,
Locker locker,
LockType type,
boolean nonBlockingRequest,
boolean jumpAheadOfWaiters) |
(package private) void |
demote(long lsn,
Locker locker)
Demote a lock from write to read.
|
(package private) void |
dumpLockTable(StatGroup stats,
boolean clear)
Dump the lock table to the lock stats.
|
LockType |
getOwnedLockType(java.lang.Long lsn,
Locker locker)
Returns the LockType if the given locker owns a lock on the given node,
or null if the lock is not owned.
|
java.util.Set<LockInfo> |
getOwners(java.lang.Long lsn)
Returns the Lockers that own a lock on the given LSN.
|
(package private) Locker |
getWriteOwnerLocker(java.lang.Long lsn) |
(package private) boolean |
isLocked(java.lang.Long lsn)
Test the status of the lock on LSN.
|
boolean |
isLockUncontended(java.lang.Long lsn) |
(package private) boolean |
isOwner(java.lang.Long lsn,
Locker locker,
LockType type)
Return true if this locker owns this a lock of this type on given node.
|
(package private) boolean |
isWaiter(java.lang.Long lsn,
Locker locker)
Return true if this locker is waiting on this lock.
|
(package private) Lock |
lookupLock(java.lang.Long lsn) |
(package private) LockConflictException |
makeTimeoutMsg(boolean isLockNotTxnTimeout,
Locker locker,
long lsn,
LockType type,
LockGrantType grantType,
Lock useLock,
long timeout,
long start,
long now,
DatabaseImpl database)
Create a informative lock or txn timeout message.
|
(package private) int |
nOwners(java.lang.Long lsn)
Return the number of owners of this lock.
|
(package private) int |
nWaiters(java.lang.Long lsn)
Return the number of waiters for this lock.
|
(package private) java.util.Set<Locker> |
releaseAndFindNotifyTargets(long lsn,
Locker locker)
Release the lock, and return the set of new owners to notify, if any.
|
protected LockAttemptResult |
stealLock(java.lang.Long lsn,
Locker locker,
LockType lockType,
MemoryBudget mb) |
(package private) boolean |
validateOwnership(java.lang.Long lsn,
Locker locker,
LockType type,
boolean flushFromWaiters,
MemoryBudget mb) |
attemptLockInternal, demoteInternal, dump, dumpLockTableInternal, dumpToString, envConfigUpdate, getLockTableIndex, getLockTableIndex, getOwnedLockTypeInternal, getOwnersInternal, getThreadLockers, getWriteOwnerLockerInternal, isLockedInternal, isLockUncontendedInternal, isOwnerInternal, isWaiterInternal, loadStats, lock, lockStat, lookupLockInternal, makeTimeoutMsgInternal, newLockNotAvailableException, nOwnersInternal, nWaitersInternal, registerThreadLocker, release, releaseAndFindNotifyTargetsInternal, setLockTableDump, stealLockInternal, unregisterThreadLocker, validateOwnershipInternalpublic DummyLockManager(EnvironmentImpl envImpl, LockManager superiorLockManager)
public java.util.Set<LockInfo> getOwners(java.lang.Long lsn)
LockManagergetOwners in class LockManagerpublic LockType getOwnedLockType(java.lang.Long lsn, Locker locker)
LockManagergetOwnedLockType in class LockManagerpublic boolean isLockUncontended(java.lang.Long lsn)
isLockUncontended in class LockManagerLock lookupLock(java.lang.Long lsn) throws DatabaseException
lookupLock in class LockManagerDatabaseExceptionLockManager.lookupLock(java.lang.Long)LockAttemptResult attemptLock(java.lang.Long lsn, Locker locker, LockType type, boolean nonBlockingRequest, boolean jumpAheadOfWaiters) throws DatabaseException
attemptLock in class LockManagerDatabaseExceptionLockManager.attemptLock(java.lang.Long, com.sleepycat.je.txn.Locker, com.sleepycat.je.txn.LockType, boolean, boolean)LockConflictException makeTimeoutMsg(boolean isLockNotTxnTimeout, Locker locker, long lsn, LockType type, LockGrantType grantType, Lock useLock, long timeout, long start, long now, DatabaseImpl database) throws DatabaseException
LockManagermakeTimeoutMsg in class LockManagerDatabaseExceptionLockManager.makeTimeoutMsg(boolean, com.sleepycat.je.txn.Locker, long, com.sleepycat.je.txn.LockType, com.sleepycat.je.txn.LockGrantType, com.sleepycat.je.txn.Lock, long, long, long, com.sleepycat.je.dbi.DatabaseImpl)java.util.Set<Locker> releaseAndFindNotifyTargets(long lsn, Locker locker) throws DatabaseException
LockManagerreleaseAndFindNotifyTargets in class LockManagerDatabaseExceptionLockManager.releaseAndFindNotifyTargets(long, com.sleepycat.je.txn.Locker)void demote(long lsn,
Locker locker)
throws DatabaseException
LockManagerdemote in class LockManagerDatabaseExceptionLockManager.demote(long, com.sleepycat.je.txn.Locker)boolean isLocked(java.lang.Long lsn)
throws DatabaseException
LockManagerisLocked in class LockManagerlsn - The LSN to check.DatabaseExceptionLockManager.isLocked(java.lang.Long)boolean isOwner(java.lang.Long lsn,
Locker locker,
LockType type)
throws DatabaseException
LockManagerisOwner in class LockManagerDatabaseExceptionLockManager.isOwner(java.lang.Long, com.sleepycat.je.txn.Locker, com.sleepycat.je.txn.LockType)boolean isWaiter(java.lang.Long lsn,
Locker locker)
throws DatabaseException
LockManagerisWaiter in class LockManagerDatabaseExceptionLockManager.isWaiter(java.lang.Long, com.sleepycat.je.txn.Locker)int nWaiters(java.lang.Long lsn)
throws DatabaseException
LockManagernWaiters in class LockManagerDatabaseExceptionLockManager.nWaiters(java.lang.Long)int nOwners(java.lang.Long lsn)
throws DatabaseException
LockManagernOwners in class LockManagerDatabaseExceptionLockManager.nOwners(java.lang.Long)Locker getWriteOwnerLocker(java.lang.Long lsn) throws DatabaseException
getWriteOwnerLocker in class LockManagerDatabaseExceptionLockManager#getWriterOwnerLockerboolean validateOwnership(java.lang.Long lsn,
Locker locker,
LockType type,
boolean flushFromWaiters,
MemoryBudget mb)
throws DatabaseException
protected LockAttemptResult stealLock(java.lang.Long lsn, Locker locker, LockType lockType, MemoryBudget mb) throws DatabaseException
void dumpLockTable(StatGroup stats, boolean clear) throws DatabaseException
LockManagerdumpLockTable in class LockManagerDatabaseExceptionLockManager.dumpLockTable(com.sleepycat.je.utilint.StatGroup, boolean)Copyright (c) 2004-2012 Oracle. All rights reserved.