Enum DataPageEvictionMode

    • Enum Constant Detail

      • 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.
      • 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 name
        NullPointerException - 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.