|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sleepycat.je.cleaner.Cleaner
public class Cleaner
The Cleaner is responsible for effectively garbage collecting the JE log. It looks through log files and locates log records (IN's and LN's of all flavors) that are superceded by later versions. Those that are "current" are propagated to a newer log file so that older log files can be deleted.
Field Summary | |
---|---|
(package private) static String |
CLEAN_IN
|
(package private) static String |
CLEAN_LN
|
(package private) static String |
CLEAN_MIGRATE_LN
|
(package private) static String |
CLEAN_PENDING_LN
|
(package private) long |
cleanerBytesInterval
|
(package private) boolean |
clusterAll
|
(package private) boolean |
clusterResident
|
(package private) int |
dbCacheClearCount
|
(package private) static boolean |
DO_CRITICAL_EVICTION
Whether the cleaner should participate in critical eviction. |
(package private) boolean |
expunge
|
(package private) boolean |
fetchObsoleteSize
|
(package private) boolean |
lazyMigration
|
(package private) long |
lockTimeout
|
(package private) int |
lookAheadCacheSize
|
(package private) int |
maxBatchFiles
|
(package private) LongStat |
nCleanerDeletions
|
(package private) LongStat |
nCleanerRuns
|
(package private) LongStat |
nClusterLNsProcessed
|
(package private) long |
nDeadlockRetries
|
(package private) LongStat |
nEntriesRead
|
(package private) LongStat |
nINsCleaned
|
(package private) LongStat |
nINsDead
|
(package private) LongStat |
nINsMigrated
|
(package private) LongStat |
nINsObsolete
|
(package private) LongStat |
nLNQueueHits
|
(package private) LongStat |
nLNsCleaned
|
(package private) LongStat |
nLNsDead
|
(package private) LongStat |
nLNsLocked
|
(package private) LongStat |
nLNsMarked
|
(package private) LongStat |
nLNsMigrated
|
(package private) LongStat |
nLNsObsolete
|
(package private) LongStat |
nMarkedLNsProcessed
|
(package private) LongStat |
nPendingLNsLocked
|
(package private) LongStat |
nPendingLNsProcessed
|
(package private) LongStat |
nRepeatIteratorReads
|
(package private) LongStat |
nToBeCleanedLNsProcessed
|
(package private) int |
readBufferSize
|
(package private) StatGroup |
stats
|
(package private) LongStat |
totalLogSize
|
(package private) boolean |
trackDetail
|
(package private) static CacheMode |
UPDATE_GENERATION
Whether to update the IN generation count during searches. |
Constructor Summary | |
---|---|
Cleaner(EnvironmentImpl env,
String name)
|
Method Summary | |
---|---|
(package private) void |
addPendingDB(DatabaseImpl db)
Adds the DB ID to the pending DB set if it is being deleted but deletion is not yet complete. |
void |
addProtectedFileRange(long firstProtectedFile)
Adds a range of log files to be protected from deletion during a backup or similar procedures where log files must not be deleted. |
void |
close()
Release resources and update memory budget. |
(package private) void |
deleteSafeToDeleteFiles()
Deletes all files that are safe-to-delete and which are not protected by a DbBackup or replication. |
int |
doClean(boolean cleanMultipleFiles,
boolean forceCleaning)
Cleans selected files and returns the number of files cleaned. |
void |
envConfigUpdate(DbConfigManager cm,
EnvironmentMutableConfig ignore)
Process notifications of mutable property changes. |
boolean |
getFetchObsoleteSize()
|
FileSelector.CheckpointStartCleanerState |
getFilesAtCheckpointStart()
Returns a copy of the cleaned and processed files at the time a checkpoint starts. |
FileSelector |
getFileSelector()
For unit testing. |
(package private) byte[] |
getLNMainKey(BIN bin,
int index)
Returns the main key for a given BIN entry. |
int |
getNWakeupRequests()
|
UtilizationProfile |
getUtilizationProfile()
|
UtilizationTracker |
getUtilizationTracker()
|
boolean |
isEvictable(BIN bin,
int index,
boolean latched)
Returns whether the given BIN entry may be stripped by the evictor. |
void |
lazyMigrateDupCountLN(DIN din,
ChildReference dclRef,
boolean backgroundIO)
This method should be called just before logging a root DIN. |
void |
lazyMigrateLNs(BIN bin,
boolean backgroundIO)
This method should be called just before logging a BIN. |
StatGroup |
loadStats(StatsConfig config)
Load stats. |
(package private) void |
logFine(String action,
Node node,
long logLsn,
boolean completed,
boolean obsolete,
boolean dirtiedMigrated)
Send trace messages to the java.util.logger. |
(package private) void |
processPending()
If any LNs are pending, process them. |
void |
removeProtectedFileRange(long firstProtectedFile)
Removes a range of log files to be protected after calling addProtectedFileRange(long) . |
void |
requestShutdown()
|
void |
runOrPause(boolean run)
|
void |
setExceptionListener(ExceptionListener exceptionListener)
|
void |
shutdown()
|
void |
updateFilesAtCheckpointEnd(FileSelector.CheckpointStartCleanerState info)
When a checkpoint is complete, update the files that were returned at the beginning of the checkpoint. |
void |
updateReadOnlyFileCollections()
Update the lowUtilizationFiles and toBeCleanedFiles fields with new read-only collections. |
void |
wakeup()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
static final String CLEAN_IN
static final String CLEAN_LN
static final String CLEAN_MIGRATE_LN
static final String CLEAN_PENDING_LN
static final CacheMode UPDATE_GENERATION
static final boolean DO_CRITICAL_EVICTION
StatGroup stats
LongStat nCleanerRuns
LongStat nCleanerDeletions
LongStat nINsObsolete
LongStat nINsCleaned
LongStat nINsDead
LongStat nINsMigrated
LongStat nLNsObsolete
LongStat nLNsCleaned
LongStat nLNsDead
LongStat nLNsLocked
LongStat nLNsMigrated
LongStat nLNsMarked
LongStat nLNQueueHits
LongStat nPendingLNsProcessed
LongStat nMarkedLNsProcessed
LongStat nToBeCleanedLNsProcessed
LongStat nClusterLNsProcessed
LongStat nPendingLNsLocked
LongStat nEntriesRead
LongStat nRepeatIteratorReads
LongStat totalLogSize
long lockTimeout
int readBufferSize
int lookAheadCacheSize
long nDeadlockRetries
boolean expunge
boolean clusterResident
boolean clusterAll
int maxBatchFiles
long cleanerBytesInterval
boolean trackDetail
boolean fetchObsoleteSize
boolean lazyMigration
int dbCacheClearCount
Constructor Detail |
---|
public Cleaner(EnvironmentImpl env, String name) throws DatabaseException
DatabaseException
Method Detail |
---|
public void envConfigUpdate(DbConfigManager cm, EnvironmentMutableConfig ignore) throws DatabaseException
envConfigUpdate
in interface EnvConfigObserver
IllegalArgumentException
- via Environment ctor and
setMutableConfig.
DatabaseException
public UtilizationTracker getUtilizationTracker()
public UtilizationProfile getUtilizationProfile()
public FileSelector getFileSelector()
public boolean getFetchObsoleteSize()
public void runOrPause(boolean run)
runOrPause
in interface DaemonRunner
public void wakeup()
public void requestShutdown()
requestShutdown
in interface DaemonRunner
public void shutdown()
shutdown
in interface DaemonRunner
public int getNWakeupRequests()
getNWakeupRequests
in interface DaemonRunner
public void setExceptionListener(ExceptionListener exceptionListener)
setExceptionListener
in interface DaemonRunner
setExceptionListener
in interface ExceptionListenerUser
ExceptionListenerUser.setExceptionListener(ExceptionListener)
public int doClean(boolean cleanMultipleFiles, boolean forceCleaning) throws DatabaseException
cleanMultipleFiles
- is true to clean until we're under budget,
or false to clean at most one file.forceCleaning
- is true to clean even if we're not under the
utilization threshold.
DatabaseException
public StatGroup loadStats(StatsConfig config)
void deleteSafeToDeleteFiles() throws DatabaseException
DatabaseException
public void addProtectedFileRange(long firstProtectedFile)
This method is called automatically by the DbBackup
utility and is provided here as a
separate API for advanced applications that may implement a custom
backup procedure.
WARNING: After calling this method, deletion of log files in
the file range by the JE log cleaner will be disabled until removeProtectedFileRange(long)
is called. To prevent unbounded growth of
disk usage, be sure to call removeProtectedFileRange(long)
to
re-enable log file deletion.
firstProtectedFile
- the number of the first file to be protected.
The protected range is from this file number to the last (highest
numbered) file in the log.public void removeProtectedFileRange(long firstProtectedFile)
addProtectedFileRange(long)
.
firstProtectedFile
- the value previously passed to addProtectedFileRange(long)
.
EnvironmentFailureException
- if firstProtectedFile
is not
currently the start of a protected range.public FileSelector.CheckpointStartCleanerState getFilesAtCheckpointStart() throws DatabaseException
If non-null is returned, the checkpoint should flush an extra level, and addCheckpointedFiles() should be called when the checkpoint is complete.
DatabaseException
public void updateFilesAtCheckpointEnd(FileSelector.CheckpointStartCleanerState info) throws DatabaseException
DatabaseException
public void updateReadOnlyFileCollections()
void processPending() throws DatabaseException
DatabaseException
public boolean isEvictable(BIN bin, int index, boolean latched)
latched
- is true if the BIN is latched and an exact answer should
be returned. Is false if the BIN may not be latched; returning the
wrong answer is OK in that case (it will be called again later when
latched), but an exception should not occur.public void lazyMigrateLNs(BIN bin, boolean backgroundIO) throws DatabaseException
On return this method guarantees that no MIGRATE flag will be set on any child entry. If this method is *not* called before logging a BIN, then the addPendingLNs method must be called.
bin
- is the latched BIN. The latch will not be released by this
method.
DatabaseException
public void lazyMigrateDupCountLN(DIN din, ChildReference dclRef, boolean backgroundIO) throws DatabaseException
On return this method guarantees that the MIGRATE flag will not be set on the child entry. If this method is *not* called before logging a root DIN, then the addPendingDupCountLN method must be called.
din
- is the latched DIN. The latch will not be released by this
method.dclRef
- is the reference to the DupCountLN.
DatabaseException
byte[] getLNMainKey(BIN bin, int index)
void addPendingDB(DatabaseImpl db)
void logFine(String action, Node node, long logLsn, boolean completed, boolean obsolete, boolean dirtiedMigrated)
public void close()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |