|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sleepycat.je.cleaner.BaseUtilizationTracker
com.sleepycat.je.cleaner.BaseLocalUtilizationTracker
com.sleepycat.je.cleaner.RecoveryUtilizationTracker
public class RecoveryUtilizationTracker
Accumulates changes to the utilization profile during recovery.
Per-database information is keyed by DatabaseId because the DatabaseImpl is not always available during recovery. In fact this is the only reason that a "local" tracker is used during recovery -- to avoid requiring that the DatabaseImpl is available, which is necessary to use the "global" UtilizationTracker. There is no requirement to accumulate totals locally, since recovery is single threaded.
When finished with this object, its information should be added to the Environment's UtilizationTracker and DatabaseImpl objects by calling transferToUtilizationTracker. This is done at the end of recovery, just prior to the checkpoint. It does not have to be done under the log write latch, since recovery is single threaded.
Field Summary |
---|
Fields inherited from class com.sleepycat.je.cleaner.BaseUtilizationTracker |
---|
bytesSinceActivate, cleaner, env |
Constructor Summary | |
---|---|
RecoveryUtilizationTracker(EnvironmentImpl env)
|
Method Summary | |
---|---|
void |
countNewLogEntry(long lsn,
LogEntryType type,
int size,
DatabaseId dbId)
Counts the addition of all new log entries including LNs. |
boolean |
countObsoleteIfUncounted(long oldLsn,
long newLsn,
LogEntryType type,
int size,
DatabaseId dbId,
boolean countExact)
Counts the oldLsn of a node obsolete if it has not already been counted at the point of newLsn in the log. |
void |
countObsoleteUnconditional(long lsn,
LogEntryType type,
int size,
DatabaseId dbId,
boolean countExact)
Counts the LSN of a node obsolete unconditionally. |
(package private) DatabaseImpl |
databaseKeyToDatabaseImpl(Object databaseKey)
Returns the DatabaseImpl from the database key, which in this case is the DatabaseId. |
int |
fetchLNSize(int size,
long lsn)
Fetches the LN to get its size only if necessary and so configured. |
(package private) boolean |
isFileUncounted(Long fileNum,
long lsn)
Overrides this method for recovery and returns whether the FileSummaryLN for the given file is prior to the given LSN. |
(package private) void |
releaseDatabaseImpl(DatabaseImpl db)
Must release the database, since DbTree.getDb was called by databaseKeyToDatabaseImpl. |
void |
resetDbInfo(DatabaseId dbId)
Clears all accmulated utilization info for the given database. |
void |
resetFileInfo(long fileNum)
Clears all accmulated utilization info for the given file. |
void |
saveLastLoggedFileSummaryLN(long fileNum,
long lsn)
Saves the LSN of the last logged FileSummaryLN. |
void |
saveLastLoggedMapLN(DatabaseId dbId,
long lsn)
Saves the LSN of the last logged MapLN. |
Methods inherited from class com.sleepycat.je.cleaner.BaseLocalUtilizationTracker |
---|
getDatabaseMap, getDbFileSummary, removeDbFileSummaries, transferToUtilizationTracker |
Methods inherited from class com.sleepycat.je.cleaner.BaseUtilizationTracker |
---|
close, countNew, countObsolete, countObsoleteDb, getEnvironment, getFileSummary, getTrackedFile, getTrackedFiles, isLNType, resetFile, trackObsoleteInfo |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public RecoveryUtilizationTracker(EnvironmentImpl env)
Method Detail |
---|
public void saveLastLoggedFileSummaryLN(long fileNum, long lsn)
public void saveLastLoggedMapLN(DatabaseId dbId, long lsn)
public void countNewLogEntry(long lsn, LogEntryType type, int size, DatabaseId dbId)
public void countObsoleteUnconditional(long lsn, LogEntryType type, int size, DatabaseId dbId, boolean countExact)
Even when countExact is true, duplicate offsets are not checked (no assertion is fired) because recovery is known to count the same LSN offset twice in certain circumstances.
public boolean countObsoleteIfUncounted(long oldLsn, long newLsn, LogEntryType type, int size, DatabaseId dbId, boolean countExact)
Even when countExact is true, duplicate offsets are not checked (no assertion is fired) because recovery is known to count the same LSN offset twice in certain circumstances.
public int fetchLNSize(int size, long lsn) throws DatabaseException
DatabaseException
boolean isFileUncounted(Long fileNum, long lsn)
isFileUncounted
in class BaseUtilizationTracker
public void resetFileInfo(long fileNum)
public void resetDbInfo(DatabaseId dbId)
DatabaseImpl databaseKeyToDatabaseImpl(Object databaseKey) throws DatabaseException
databaseKeyToDatabaseImpl
in class BaseLocalUtilizationTracker
DatabaseException
void releaseDatabaseImpl(DatabaseImpl db)
releaseDatabaseImpl
in class BaseLocalUtilizationTracker
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |