|
|||||||||
| 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(java.lang.Long fileNum,
java.util.Set<DatabaseId> databases,
MemoryBudget budget)
When cleaning is complete, move the file from the being-cleaned set to the cleaned set. |
(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) java.util.Set<java.lang.Long> |
copySafeToDeleteFiles()
Returns a copy of the safe-to-delete files. |
(package private) int |
getBacklog()
Returns the number of files waiting to-be-cleaned. |
(package private) java.util.Set<DatabaseId> |
getCleanedDatabases(java.lang.Long fileNum)
Returns a copy of the databases for a cleaned file. |
(package private) FileSelector.CheckpointStartCleanerState |
getFilesAtCheckpointStart()
Returns a copy of the cleaned and fully-processed files at the time a checkpoint starts. |
(package private) java.util.Set<java.lang.Long> |
getLowUtilizationFiles()
Returns a read-only set of low utilization files that can be accessed without synchronization. |
(package private) java.util.Set<java.lang.Long> |
getMustBeCleanedFiles()
Returns a read-only copy of to-be-cleaned and being-cleaned 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) boolean |
isFileCleaningInProgress(java.lang.Long file)
Returns whether the file is in any stage of the cleaning process. |
(package private) void |
putBackFileForCleaning(java.lang.Long fileNum)
When file cleaning is aborted, move the file back from the being-cleaned set to the to-be-cleaned set. |
(package private) void |
removeAllFileReferences(java.lang.Long file,
MemoryBudget budget)
Removes all references to a file. |
(package private) void |
removeDeletedFile(java.lang.Long fileNum,
MemoryBudget budget)
Removes file from the safe-to-delete set after the 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) java.lang.Long |
selectFileForCleaning(UtilizationProfile profile,
boolean forceCleaning,
boolean calcLowUtilizationFiles,
int maxBatchFiles)
Returns the best file that qualifies for cleaning, or null if no file qualifies. |
(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 sets. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
FileSelector()
| Method Detail |
|---|
java.lang.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.
DatabaseExceptionboolean isFileCleaningInProgress(java.lang.Long file)
void removeAllFileReferences(java.lang.Long file,
MemoryBudget budget)
void putBackFileForCleaning(java.lang.Long fileNum)
void addCleanedFile(java.lang.Long fileNum,
java.util.Set<DatabaseId> databases,
MemoryBudget budget)
java.util.Set<java.lang.Long> getLowUtilizationFiles()
java.util.Set<java.lang.Long> getMustBeCleanedFiles()
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)
java.util.Set<java.lang.Long> copySafeToDeleteFiles()
java.util.Set<DatabaseId> getCleanedDatabases(java.lang.Long fileNum)
void removeDeletedFile(java.lang.Long fileNum,
MemoryBudget budget)
void close(MemoryBudget budget)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||