|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sleepycat.je.cleaner.FileSelector
public class FileSelector
Keeps track of the status of files for which cleaning is in progres.
Nested Class Summary | |
---|---|
static class |
FileSelector.CheckpointStartCleanerState
Holds copy of all checkpoint-dependent cleaner state. |
Constructor Summary | |
---|---|
FileSelector()
|
Method Summary | |
---|---|
(package private) void |
addCleanedFile(Long fileNum,
Set<DatabaseId> databases,
VLSN lastVlsn,
MemoryBudget budget)
When cleaning is complete, move the file from the BEING_CLEANED to CLEANED. |
(package private) boolean |
addPendingDB(DatabaseId dbId)
Adds the given DatabaseId to the pending DB set. |
(package private) boolean |
addPendingLN(LN ln,
DatabaseId dbId,
byte[] key,
byte[] dupKey)
Adds the given LN info to the pending LN set. |
(package private) void |
close(MemoryBudget budget)
Update memory budgets when the environment is closed and will never be accessed again. |
(package private) SortedSet<Long> |
copySafeToDeleteFiles()
Returns a copy of the SAFE_TO_DELETE files, or null if there are none. |
(package private) int |
getBacklog()
Returns the number of files waiting TO_BE_CLEANED. |
(package private) Set<DatabaseId> |
getCleanedDatabases(Long fileNum)
Returns a copy of the databases for a cleaned file, or null if there are none. |
(package private) FileSelector.CheckpointStartCleanerState |
getFilesAtCheckpointStart()
Returns a copy of the CLEANED and FULLY_PROCESSED files at the time a checkpoint starts. |
(package private) VLSN |
getLastVLSN(Long fileNum)
Returns the last VLSN for a cleaned file. |
(package private) Set<Long> |
getLowUtilizationFiles()
Returns a read-only set of low utilization files that can be accessed without synchronization. |
(package private) DatabaseId[] |
getPendingDBs()
Returns an array of DatabaseIds for DBs that were pending deletion in a prior cleaning attempt, or null if no DBs are pending. |
(package private) LNInfo[] |
getPendingLNs()
Returns an array of LNInfo for LNs that could not be migrated in a prior cleaning attempt, or null if no LNs are pending. |
(package private) Set<Long> |
getToBeCleanedFiles()
Returns a read-only copy of TO_BE_CLEANED files that can be accessed without synchronization. |
void |
injectFileForCleaning(Long fileNum)
For unit testing. |
(package private) boolean |
isFileCleaningInProgress(Long fileNum)
Returns whether the file is in any stage of the cleaning process. |
(package private) StatGroup |
loadStats()
Loads file selection stats. |
(package private) void |
putBackFileForCleaning(Long fileNum)
When file cleaning is aborted, move the file back from BEING_CLEANED to TO_BE_CLEANED. |
(package private) void |
removeAllFileReferences(Long fileNum,
MemoryBudget budget)
Removes all references to a file. |
(package private) void |
removeDeletedFile(Long fileNum,
MemoryBudget budget)
Removes file information after the log file itself has finally been deleted. |
(package private) void |
removePendingDB(DatabaseId dbId)
Removes the DatabaseId from the pending DB set. |
(package private) void |
removePendingLN(long nodeId)
Removes the LN for the given node ID from the pending LN set. |
(package private) Long |
selectFileForCleaning(UtilizationProfile profile,
boolean forceCleaning,
boolean calcLowUtilizationFiles,
int maxBatchFiles)
Returns the best file that qualifies for cleaning, or null if no file qualifies. |
void |
setFileChosenHook(TestHook hook)
|
String |
toString()
|
(package private) void |
updateFilesAtCheckpointEnd(FileSelector.CheckpointStartCleanerState info)
When a checkpoint is complete, move the previously CLEANED and FULLY_PROCESSED files to the CHECKPOINTED and SAFE_TO_DELETE status. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
FileSelector()
Method Detail |
---|
public void setFileChosenHook(TestHook hook)
Long selectFileForCleaning(UtilizationProfile profile, boolean forceCleaning, boolean calcLowUtilizationFiles, int maxBatchFiles) throws DatabaseException
forceCleaning
- is true to always select a file, even if its
utilization is above the minimum utilization threshold.calcLowUtilizationFiles
- whether to recalculate the set of files
that are below the minimum utilization threshold.maxBatchFiles
- is the maximum number of files to be selected at
one time, or zero if there is no limit.
DatabaseException
boolean isFileCleaningInProgress(Long fileNum)
void removeAllFileReferences(Long fileNum, MemoryBudget budget)
void putBackFileForCleaning(Long fileNum)
public void injectFileForCleaning(Long fileNum)
void addCleanedFile(Long fileNum, Set<DatabaseId> databases, VLSN lastVlsn, MemoryBudget budget)
Set<Long> getLowUtilizationFiles()
Set<Long> getToBeCleanedFiles()
int getBacklog()
FileSelector.CheckpointStartCleanerState getFilesAtCheckpointStart()
void updateFilesAtCheckpointEnd(FileSelector.CheckpointStartCleanerState info)
boolean addPendingLN(LN ln, DatabaseId dbId, byte[] key, byte[] dupKey)
LNInfo[] getPendingLNs()
void removePendingLN(long nodeId)
boolean addPendingDB(DatabaseId dbId)
DatabaseId[] getPendingDBs()
void removePendingDB(DatabaseId dbId)
SortedSet<Long> copySafeToDeleteFiles()
Set<DatabaseId> getCleanedDatabases(Long fileNum)
VLSN getLastVLSN(Long fileNum)
void removeDeletedFile(Long fileNum, MemoryBudget budget)
void close(MemoryBudget budget)
StatGroup loadStats()
public String toString()
toString
in class Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |