Package org.apache.ignite.configuration
Enum DataPageEvictionMode
- java.lang.Object
-
- java.lang.Enum<DataPageEvictionMode>
-
- org.apache.ignite.configuration.DataPageEvictionMode
-
- All Implemented Interfaces:
Serializable
,Comparable<DataPageEvictionMode>
public enum DataPageEvictionMode extends Enum<DataPageEvictionMode>
Defines memory page eviction algorithm. A mode is set for a specificDataRegionConfiguration
. Only data pages, that store key-value entries, are eligible for eviction. The other types of pages, like index or meta pages, are not evictable.
-
-
Enum Constant Summary
Enum Constants Enum Constant Description DISABLED
Eviction is disabled.RANDOM_2_LRU
Random-2-LRU algorithm: scan-resistant version of Random-LRU.RANDOM_LRU
Random-LRU algorithm.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static @Nullable DataPageEvictionMode
fromOrdinal(int ord)
Efficiently gets enumerated value from its ordinal.static DataPageEvictionMode
valueOf(String name)
Returns the enum constant of this type with the specified name.static DataPageEvictionMode[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
DISABLED
public static final DataPageEvictionMode DISABLED
Eviction is disabled.
-
RANDOM_LRU
public static final DataPageEvictionMode RANDOM_LRU
Random-LRU algorithm.- Once a memory region defined by a data region is configured, an off-heap array is allocated to track
last usage timestamp for every individual data page. The size of the array is calculated this way - size =
(
DataRegionConfiguration.getMaxSize()
/DataStorageConfiguration.pageSize
) - When a data page is accessed, its timestamp gets updated in the tracking array. The page index in the
tracking array is calculated this way - index = (pageAddress /
DataRegionConfiguration.getMaxSize()
- When it's required to evict some pages, the algorithm randomly chooses 5 indexes from the tracking array and evicts a page with the latest timestamp. If some of the indexes point to non-data pages (index or system pages) then the algorithm picks other pages.
- Once a memory region defined by a data region is configured, an off-heap array is allocated to track
last usage timestamp for every individual data page. The size of the array is calculated this way - size =
(
-
RANDOM_2_LRU
public static final DataPageEvictionMode RANDOM_2_LRU
Random-2-LRU algorithm: scan-resistant version of Random-LRU.This algorithm differs from Random-LRU only in a way that two latest access timestamps are stored for every data page. At the eviction time, a minimum between two latest timestamps is taken for further comparison with minimums of other pages that might be evicted. LRU-2 outperforms LRU by resolving "one-hit wonder" problem - if a data page is accessed rarely, but accidentally accessed once, it's protected from eviction for a long time.
-
-
Method Detail
-
values
public static DataPageEvictionMode[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:for (DataPageEvictionMode c : DataPageEvictionMode.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static DataPageEvictionMode valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is null
-
fromOrdinal
@Nullable public static @Nullable DataPageEvictionMode fromOrdinal(int ord)
Efficiently gets enumerated value from its ordinal.- Parameters:
ord
- Ordinal value.- Returns:
- Enumerated value or
null
if ordinal out of range.
-
-