|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sleepycat.je.evictor.TargetSelector
abstract class TargetSelector
The TargetSelect choses an IN for eviction. This is the main point of synchronization in the eviction path. There are other points of synchronization when executing the body of the eviction itself, such as when a btree node latch is taken, or log cleaning utilization information is transferred. The implementation of the target selector is different for a private vs. shared cache, because the underlying cache data structures are different. This difference in implementation embodies the difference between private and shared caches.
Nested Class Summary | |
---|---|
(package private) static class |
TargetSelector.EvictProfile
|
(package private) class |
TargetSelector.ScanInfo
Struct returned when selecting a single IN for eviction. |
(package private) static class |
TargetSelector.SetupInfo
Struct returned when setting up an eviction batch. |
Field Summary | |
---|---|
(package private) StatGroup |
stats
|
Constructor Summary | |
---|---|
TargetSelector(EnvironmentImpl envImpl)
|
Method Summary | |
---|---|
abstract void |
addEnvironment(EnvironmentImpl additionalEnvImpl)
Only supported by SharedEvictor. |
abstract boolean |
checkEnv(EnvironmentImpl targetEnvImpl)
|
(package private) abstract StatGroup |
getINListStats(StatsConfig config)
|
(package private) abstract IN |
getNextIN()
Returns the next IN in the INList(s), wrapping if necessary. |
(package private) abstract Iterator<IN> |
getScanIterator()
|
StatGroup |
loadStats(StatsConfig config)
|
(package private) static int |
normalizeLevel(IN in,
int evictType)
Normalize the tree level of the given IN. |
abstract void |
noteINListChange(int nINs)
Called whenever INs are added to, or removed from, the INList. |
abstract void |
removeEnvironment(EnvironmentImpl targetEnvImpl)
Only supported by SharedEvictor. |
(package private) TargetSelector.ScanInfo |
selectIN(int maxNodesToIterate)
Select a single node to evict. |
(package private) abstract void |
setScanIterator(Iterator<IN> iter)
|
(package private) abstract TargetSelector.SetupInfo |
startBatch(boolean doSpecialEviction)
Must be synchronized! Perform class-specific batch pre-batch processing: Initialize iterator, and do special eviction (UtilizationTracker eviction) if suitable. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
final StatGroup stats
Constructor Detail |
---|
TargetSelector(EnvironmentImpl envImpl)
Method Detail |
---|
TargetSelector.ScanInfo selectIN(int maxNodesToIterate)
static int normalizeLevel(IN in, int evictType)
abstract TargetSelector.SetupInfo startBatch(boolean doSpecialEviction) throws DatabaseException
doSpecialEviction
- Do non-tree eviction, such as flushing the
UtilizationProfile. Since special eviction is serialized, and does
require I/O, some callers may not want to be blocked doing this
DatabaseException
abstract IN getNextIN()
abstract StatGroup getINListStats(StatsConfig config)
public abstract void noteINListChange(int nINs)
public StatGroup loadStats(StatsConfig config)
public abstract void addEnvironment(EnvironmentImpl additionalEnvImpl)
public abstract void removeEnvironment(EnvironmentImpl targetEnvImpl)
public abstract boolean checkEnv(EnvironmentImpl targetEnvImpl)
abstract Iterator<IN> getScanIterator()
abstract void setScanIterator(Iterator<IN> iter)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |