Skip navigation links

Oracle® Fusion Middleware Java API Reference for Oracle Coherence
12c (12.1.3.0.0)

E47890-01


com.tangosol.net.cache
Class CompactSerializationCache.InternalEvictionPolicy

java.lang.Object
  extended by com.tangosol.net.cache.CompactSerializationCache.InternalEvictionPolicy

All Implemented Interfaces:
ConfigurableCacheMap.EvictionPolicy
Direct Known Subclasses:
CompactSerializationCache.HybridEvictionPolicy, CompactSerializationCache.LFUEvictionPolicy, CompactSerializationCache.LRUEvictionPolicy, CompactSerializationCache.WrapperEvictionPolicy
Enclosing class:
CompactSerializationCache

protected abstract class CompactSerializationCache.InternalEvictionPolicy
extends java.lang.Object
implements ConfigurableCacheMap.EvictionPolicy

InternalEvictionPolicy is an abstract base implementation of an ConfigurableCacheMap.EvictionPolicy used by this CompactSerializationCache.


Nested Class Summary
protected  class CompactSerializationCache.InternalEvictionPolicy.EvictionCandidate
          EvictionCandidate represents a candidate for eviction during the calculation of the eviction set, representing the key, its relative "weight" as assigned by the configured ConfigurableCacheMap.EvictionPolicy as well as its size in units.
protected  class CompactSerializationCache.InternalEvictionPolicy.EvictionVisitor
          SafeEntryVisitor implementation that calculates the set of eviction candidates.

 

Field Summary
protected  BinaryLongMap.EntryVisitor f_visitorTouchCount
          The singleton stateless visitor to update the touch-count map.
protected  BinaryLongMap.EntryVisitor f_visitorTouchTime
          The singleton stateless visitor to update the touch-time map.
protected  long m_ldtLastEvict
          The date-time of the last eviction.

 

Constructor Summary
protected CompactSerializationCache.InternalEvictionPolicy()
           

 

Method Summary
protected abstract  long calculateWeight(Binary binKey)
          Calculate the "weight" of the entry associated with the specified key.
 void entryTouched(Binary binKey)
          This method is called by the cache to indicate that the entry for the specified key has been touched.
 void entryTouched(ConfigurableCacheMap.Entry entry)
          This method is called by the cache to indicate that an entry has been touched.
protected abstract  ConfigurableCacheMap.EvictionPolicy getConfiguredPolicy()
          Return the configured EvictionPolicy instance.
 java.lang.String getName()
          Obtain the name of the eviction policy.
 void requestEviction(int cMaximum)
          This method is called by the cache when the cache requires the eviction policy to evict entries.
protected  void touchInternal(Binary binKey)
          Update the internally maintained "touch"-related statistics for the specified key (e.g. touch time and touch count).

 

Field Detail

m_ldtLastEvict

protected long m_ldtLastEvict
The date-time of the last eviction.

f_visitorTouchCount

protected final BinaryLongMap.EntryVisitor f_visitorTouchCount
The singleton stateless visitor to update the touch-count map.

f_visitorTouchTime

protected final BinaryLongMap.EntryVisitor f_visitorTouchTime
The singleton stateless visitor to update the touch-time map.

Constructor Detail

CompactSerializationCache.InternalEvictionPolicy

protected CompactSerializationCache.InternalEvictionPolicy()

Method Detail

requestEviction

public void requestEviction(int cMaximum)
This method is called by the cache when the cache requires the eviction policy to evict entries.
Specified by:
requestEviction in interface ConfigurableCacheMap.EvictionPolicy
Parameters:
cMaximum - the maximum number of units that should remain in the cache when the eviction is complete

entryTouched

public void entryTouched(ConfigurableCacheMap.Entry entry)
This method is called by the cache to indicate that an entry has been touched.
Specified by:
entryTouched in interface ConfigurableCacheMap.EvictionPolicy
Parameters:
entry - the Cache Entry that has been touched

getName

public java.lang.String getName()
Obtain the name of the eviction policy. This is intended to be human readable for use in a monitoring tool; examples include "LRU" and "LFU".
Specified by:
getName in interface ConfigurableCacheMap.EvictionPolicy
Returns:
the name of the eviction policy

getConfiguredPolicy

protected abstract ConfigurableCacheMap.EvictionPolicy getConfiguredPolicy()
Return the configured EvictionPolicy instance.
Returns:
the configured EvictionPolicy

calculateWeight

protected abstract long calculateWeight(Binary binKey)
Calculate the "weight" of the entry associated with the specified key. The weight is a quantitative measure of how to prioritize the eviction of this entry w.r.t. the other cache entries. Entries with a smaller weights are of higher priority and are preferred over entries with larger weights for eviction.
Parameters:
binKey - the key to calculate the weight for

entryTouched

public void entryTouched(Binary binKey)
This method is called by the cache to indicate that the entry for the specified key has been touched.
Parameters:
binKey - the key

touchInternal

protected void touchInternal(Binary binKey)
Update the internally maintained "touch"-related statistics for the specified key (e.g. touch time and touch count).
Parameters:
binKey - the key being touched

Skip navigation links

Oracle® Fusion Middleware Java API Reference for Oracle Coherence
12c (12.1.3.0.0)

E47890-01


Copyright © 2000, 2014, Oracle and/or its affiliates. All rights reserved.