|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sleepycat.je.evictor.TargetSelector
com.sleepycat.je.evictor.SharedSelector
class SharedSelector
A shared cache is really a way of processing the caches of multiple environments. The objects that keep track of round robining between the caches, and the different shared cache selector implementation together constitute the shared cache. This selector operates on the INLists for multiple environments that share a single cache. Multiple iterators, once for each INList, are used to implement getNextIN. INs are returned from from each iterator in a round-robin rotation, giving larger INLists proportionally more rotations. This "mixes up" the INs from all INlists so that the LRU algorithm is applied across all lists.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class com.sleepycat.je.evictor.TargetSelector |
---|
TargetSelector.EvictProfile, TargetSelector.ScanInfo, TargetSelector.SetupInfo |
Field Summary |
---|
Fields inherited from class com.sleepycat.je.evictor.TargetSelector |
---|
stats |
Constructor Summary | |
---|---|
SharedSelector(EnvironmentImpl envImpl)
|
Method Summary | |
---|---|
void |
addEnvironment(EnvironmentImpl env)
Synchronized so that the set of environments cannot be changed in the middle of an eviction (which is also synchronized). |
boolean |
checkEnv(EnvironmentImpl targetEnvImpl)
Returns true if the given environment is present in the set of subject environments. |
(package private) StatGroup |
getINListStats(StatsConfig config)
Return stats for the multiple INLists covered by this evictor. |
(package private) IN |
getNextIN()
Returns the next IN, wrapping if necessary. |
(package private) Iterator<IN> |
getScanIterator()
|
StatGroup |
loadStats(StatsConfig config)
|
void |
noteINListChange(int nINs)
After 1/INIT_SIZE_THRESHOLD of all INs have been changed, reinitialize the sizes. |
void |
removeEnvironment(EnvironmentImpl env)
Synchronized so that the set of environments cannot be changed in the middle of an eviction (which is also synchronized). |
(package private) void |
setScanIterator(Iterator<IN> iter)
|
(package private) TargetSelector.SetupInfo |
startBatch(boolean doSpecialEviction)
Initializes the sizes if needed, and performs special eviction for one environment in rotatation. |
Methods inherited from class com.sleepycat.je.evictor.TargetSelector |
---|
normalizeLevel, selectIN |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SharedSelector(EnvironmentImpl envImpl) throws DatabaseException
DatabaseException
Method Detail |
---|
StatGroup getINListStats(StatsConfig config)
getINListStats
in class TargetSelector
public StatGroup loadStats(StatsConfig config)
loadStats
in class TargetSelector
public void noteINListChange(int nINs)
noteINListChange
in class TargetSelector
public void addEnvironment(EnvironmentImpl env)
addEnvironment
in class TargetSelector
public void removeEnvironment(EnvironmentImpl env)
removeEnvironment
in class TargetSelector
public boolean checkEnv(EnvironmentImpl targetEnvImpl)
checkEnv
in class TargetSelector
TargetSelector.SetupInfo startBatch(boolean doSpecialEviction) throws DatabaseException
startBatch
in class TargetSelector
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
IN getNextIN()
getNextIN
in class TargetSelector
Iterator<IN> getScanIterator()
getScanIterator
in class TargetSelector
void setScanIterator(Iterator<IN> iter)
setScanIterator
in class TargetSelector
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |