Package org.apache.ignite.cache.eviction.sorted

## Class SortedEvictionPolicyFactory<K,​V>

- java.lang.Object
- - org.apache.ignite.cache.eviction.AbstractEvictionPolicyFactory<SortedEvictionPolicy<K,​V>>
  - - org.apache.ignite.cache.eviction.sorted.SortedEvictionPolicyFactory<K,​V>

- All Implemented Interfaces:
    `Serializable`, `javax.cache.configuration.Factory<SortedEvictionPolicy<K,​V>>`

      public class SortedEvictionPolicyFactory<K,​V>
      extends AbstractEvictionPolicyFactory<SortedEvictionPolicy<K,​V>>

  Factory class for `SortedEvictionPolicy`. Creates cache Eviction policy which will select the minimum cache entry for 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.
  Note:Batch eviction is enabled only if maximum memory limit isn't set (`maxMemSize == 0`). `batchSize` elements will be evicted in this case. The default `batchSize` value is `1`.

  Entries comparison based on `Comparator` instance if provided. Default `Comparator` behaviour is use cache entries keys for comparison that imposes a requirement for keys to implement `Comparable` interface.

  User defined comparator should implement `Serializable` interface.

  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SortedEvictionPolicyFactory()` |
    `SortedEvictionPolicyFactory​(int maxSize)` |
    `SortedEvictionPolicyFactory​(int maxSize, int batchSize, long maxMemSize)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `SortedEvictionPolicy<K,​V>` | `create()`
    `Comparator<EvictableEntry<K,​V>>` | `getComp()` | Gets entries comparator.
    `void` | `setComp​(Comparator<EvictableEntry<K,​V>> comp)` | Sets entries comparator.

    - ### Methods inherited from class org.apache.ignite.cache.eviction.AbstractEvictionPolicyFactory

      `getBatchSize, getMaxMemorySize, getMaxSize, setBatchSize, setMaxMemorySize, setMaxSize`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SortedEvictionPolicyFactory

          public SortedEvictionPolicyFactory()

    - #### SortedEvictionPolicyFactory

          public SortedEvictionPolicyFactory​(int maxSize)

      Parameters:
        `maxSize` - Maximum allowed size of cache before entry will start getting evicted.

    - #### SortedEvictionPolicyFactory

          public SortedEvictionPolicyFactory​(int maxSize,
                                             int batchSize,
                                             long maxMemSize)

      Parameters:
        `maxSize` - Maximum allowed size of cache before entry will start getting evicted.
        `batchSize` - Batch size.
        `maxMemSize` - Maximum allowed cache size in bytes.

  - ### Method Detail

    - #### getComp

          public Comparator<EvictableEntry<K,​V>> getComp()

      Gets entries comparator.
      Returns:
        entry comparator.

    - #### setComp

          public void setComp​(Comparator<EvictableEntry<K,​V>> comp)

      Sets entries comparator.
      Parameters:
        `comp` - entry comparator.

    - #### create

          public SortedEvictionPolicy<K,​V> create()