Memory page eviction mode. Only data pages, that store key-value entries, are eligible for eviction. The other types of pages, like index or system pages, are not evictable.
[Obsolete("Use Apache.Ignite.Core.Configuration.DataPageEvictionMode")] public enum DataPageEvictionMode
Eviction is disabled.
Activates Random-2-LRU algorithm which is a 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, its protected from eviction for a long time.
Once a memory region defined by a memory policy is configured, an off-heap array is allocated to track last usage timestamp for every individual data page. The size of the array equals to MaxSize / PageSize.
When a data page is accessed, its timestamp gets updated in the tracking array. The page index in the tracking array equals to pageAddress / MaxSize.
When some pages need to be evicted, 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.