public class LocalUtilizationTracker extends BaseLocalUtilizationTracker
Per-database information is keyed by DatabaseImpl so that no tree lookup of a database is required (as when a DatabaseId is used).
The countNewLogEntry, countObsoleteNode and countObsoleteNodeInexact methods may be called without taking the log write latch. Totals and offset are accumulated locally in this object only, not in DatabaseImpl objects.
When finished with this object, its information should be added to the Environment's UtilizationTracker and DatabaseImpl objects by calling transferToUtilizationTracker under the log write latch. This is done in the Checkpointer, Evictor and INCompressor by calling UtilizationProfile.flushLocalTracker which calls LogManager.transferToUtilizationTracker which calls BaseLocalUtilizationTracker.transferToUtilizationTracker.
bytesSinceActivate, cleaner, env
Constructor and Description |
---|
LocalUtilizationTracker(EnvironmentImpl env) |
Modifier and Type | Method and Description |
---|---|
void |
countNewLogEntry(long lsn,
LogEntryType type,
int size,
DatabaseImpl db)
Counts the addition of all new log entries including LNs.
|
void |
countObsoleteNode(long lsn,
LogEntryType type,
int size,
DatabaseImpl db)
Counts a node that has become obsolete and tracks the LSN offset, if
non-zero, to avoid a lookup during cleaning.
|
void |
countObsoleteNodeInexact(long lsn,
LogEntryType type,
int size,
DatabaseImpl db)
Counts as countObsoleteNode does, but since the LSN may be inexact, does
not track the obsolete LSN offset.
|
(package private) DatabaseImpl |
databaseKeyToDatabaseImpl(java.lang.Object databaseKey)
Returns the DatabaseImpl from the database key, which in this case is
the DatabaseImpl.
|
java.util.Set<java.lang.Object> |
getTrackedDbs() |
(package private) void |
releaseDatabaseImpl(DatabaseImpl db)
Do nothing, since DbTree.getDb was not called by
databaseKeyToDatabaseImpl.
|
getDatabaseMap, getDbFileSummary, removeDbFileSummaries, transferToUtilizationTracker
close, countNew, countObsolete, countObsoleteDb, getEnvironment, getFileSummary, getTrackedFile, getTrackedFiles, isFileUncounted, isLNType, resetFile, trackObsoleteInfo
public LocalUtilizationTracker(EnvironmentImpl env)
public void countNewLogEntry(long lsn, LogEntryType type, int size, DatabaseImpl db)
public void countObsoleteNode(long lsn, LogEntryType type, int size, DatabaseImpl db)
A zero LSN offset is used as a special value when obsolete offset tracking is not desired. [#15365] The file header entry (at offset zero) is never counted as obsolete, it is assumed to be obsolete by the cleaner.
This method should only be called for LNs and INs (i.e, only for nodes). If type is null we assume it is an LN.
public void countObsoleteNodeInexact(long lsn, LogEntryType type, int size, DatabaseImpl db)
This method should only be called for LNs and INs (i.e, only for nodes). If type is null we assume it is an LN.
public java.util.Set<java.lang.Object> getTrackedDbs()
DatabaseImpl databaseKeyToDatabaseImpl(java.lang.Object databaseKey)
databaseKeyToDatabaseImpl
in class BaseLocalUtilizationTracker
void releaseDatabaseImpl(DatabaseImpl db)
releaseDatabaseImpl
in class BaseLocalUtilizationTracker
Copyright (c) 2004-2012 Oracle. All rights reserved.