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
stealLock in class LockManagerDatabaseExceptionLockManager.stealLock(java.lang.Long, com.sleepycat.je.txn.Locker, com.sleepycat.je.txn.LockType, com.sleepycat.je.dbi.MemoryBudget)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.