Class FifoEvictionPolicy<K,V>
- java.lang.Object
-
- org.apache.ignite.cache.eviction.AbstractEvictionPolicy<K,V>
-
- org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicy<K,V>
-
- All Implemented Interfaces:
Externalizable
,Serializable
,EvictionPolicy<K,V>
,IgniteMBeanAware
public class FifoEvictionPolicy<K,V> extends AbstractEvictionPolicy<K,V> implements IgniteMBeanAware
Eviction policy based onFirst In First Out (FIFO)
algorithm and supports batch eviction.The eviction starts in the following cases:
- The cache size becomes
batchSize
elements greater than the maximum size. - The size of cache entries in bytes becomes greater than the maximum memory size. The size of cache entry calculates as sum of key size and value size.
maxMemSize == 0
).batchSize
elements will be evicted in this case. The defaultbatchSize
value is1
.This implementation is very efficient since it does not create any additional table-like data structures. The
FIFO
ordering information is maintained by attaching ordering metadata to cache entries.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.ignite.cache.eviction.AbstractEvictionPolicy
memSize
-
-
Constructor Summary
Constructors Constructor Description FifoEvictionPolicy()
Constructs FIFO eviction policy with all defaults.FifoEvictionPolicy(int max)
Constructs FIFO eviction policy with maximum size.FifoEvictionPolicy(int max, int batchSize)
Constructs FIFO eviction policy with maximum size and given batch size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getCurrentSize()
Object
getMBean()
Collection<EvictableEntry<K,V>>
queue()
Gets read-only view on internalFIFO
queue in proper order.protected boolean
removeMeta(Object meta)
FifoEvictionPolicy<K,V>
setBatchSize(int batchSize)
Sets batch size.FifoEvictionPolicy<K,V>
setMaxMemorySize(long maxMemSize)
Sets maximum allowed cache size in bytes.FifoEvictionPolicy<K,V>
setMaxSize(int max)
Sets maximum allowed size of cache before entry will start getting evicted.protected int
shrink0()
Tries to remove one item from queue.String
toString()
protected boolean
touch(EvictableEntry<K,V> entry)
-
Methods inherited from class org.apache.ignite.cache.eviction.AbstractEvictionPolicy
getBatchSize, getCurrentMemorySize, getMaxMemorySize, getMaxSize, onEntryAccessed, readExternal, shrink, writeExternal
-
-
-
-
Constructor Detail
-
FifoEvictionPolicy
public FifoEvictionPolicy()
Constructs FIFO eviction policy with all defaults.
-
FifoEvictionPolicy
public FifoEvictionPolicy(int max)
Constructs FIFO eviction policy with maximum size. Empty entries are allowed.- Parameters:
max
- Maximum allowed size of cache before entry will start getting evicted.
-
FifoEvictionPolicy
public FifoEvictionPolicy(int max, int batchSize)
Constructs FIFO eviction policy with maximum size and given batch size. Empty entries are allowed.- Parameters:
max
- Maximum allowed size of cache before entry will start getting evicted.batchSize
- Batch size.
-
-
Method Detail
-
getCurrentSize
public int getCurrentSize()
- Specified by:
getCurrentSize
in classAbstractEvictionPolicy<K,V>
- Returns:
- Size of the container with trackable entries.
-
setMaxMemorySize
public FifoEvictionPolicy<K,V> setMaxMemorySize(long maxMemSize)
Sets maximum allowed cache size in bytes.- Overrides:
setMaxMemorySize
in classAbstractEvictionPolicy<K,V>
- Parameters:
maxMemSize
- Maximum allowed cache size in bytes.- Returns:
this
for chaining.
-
setMaxSize
public FifoEvictionPolicy<K,V> setMaxSize(int max)
Sets maximum allowed size of cache before entry will start getting evicted.- Overrides:
setMaxSize
in classAbstractEvictionPolicy<K,V>
- Parameters:
max
- Maximum allowed size of cache before entry will start getting evicted.- Returns:
this
for chaining.
-
setBatchSize
public FifoEvictionPolicy<K,V> setBatchSize(int batchSize)
Sets batch size.- Overrides:
setBatchSize
in classAbstractEvictionPolicy<K,V>
- Parameters:
batchSize
- Batch size.- Returns:
this
for chaining.
-
queue
public Collection<EvictableEntry<K,V>> queue()
Gets read-only view on internalFIFO
queue in proper order.- Returns:
- Read-only view ono internal
'FIFO'
queue.
-
removeMeta
protected boolean removeMeta(Object meta)
- Specified by:
removeMeta
in classAbstractEvictionPolicy<K,V>
- Parameters:
meta
- Meta-information shipped to an entry.- Returns:
True
if meta was successfully removed from the container.
-
touch
protected boolean touch(EvictableEntry<K,V> entry)
- Specified by:
touch
in classAbstractEvictionPolicy<K,V>
- Parameters:
entry
- Entry to touch.- Returns:
True
if queue has been changed by this call.
-
shrink0
protected int shrink0()
Tries to remove one item from queue.- Specified by:
shrink0
in classAbstractEvictionPolicy<K,V>
- Returns:
- number of bytes that was free.
-1
if queue is empty.
-
getMBean
public Object getMBean()
- Specified by:
getMBean
in interfaceIgniteMBeanAware
- Returns:
- MBean for this object.
-
-