Show / Hide Table of Contents

# Enum DataPageEvictionMode

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.

###### Namespace: Apache.Ignite.Core.Configuration

###### Assembly: Apache.Ignite.Core.dll

##### Syntax

    public enum DataPageEvictionMode

### Fields

Name | Description
--- | ---
Disabled | Eviction is disabled.
Random2Lru | 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.
RandomLru | Random-LRU algorithm. 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.