Show / Hide Table of Contents

# Class MemoryPolicyConfiguration

Defines page memory policy configuration. See MemoryPolicies. Obsolete, use DataRegionConfiguration.

##### Inheritance

System.Object
MemoryPolicyConfiguration

##### Inherited Members

System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()

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

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

##### Syntax

    [Obsolete("Use DataRegionConfiguration.")]
    public class MemoryPolicyConfiguration

### Constructors

#### MemoryPolicyConfiguration()

Initializes a new instance of the MemoryPolicyConfiguration class.

##### Declaration

    public MemoryPolicyConfiguration()

### Fields

#### DefaultEmptyPagesPoolSize

The default empty pages pool size.

##### Declaration

    public const int DefaultEmptyPagesPoolSize = 100

##### Field Value

Type | Description
--- | ---
System.Int32 |

#### DefaultEvictionThreshold

The default eviction threshold.

##### Declaration

    public const double DefaultEvictionThreshold = 0.9

##### Field Value

Type | Description
--- | ---
System.Double |

#### DefaultInitialSize

The default initial size.

##### Declaration

    public const long DefaultInitialSize = 268435456L

##### Field Value

Type | Description
--- | ---
System.Int64 |

#### DefaultMaxSize

The default maximum size, equals to 20% of total RAM.

##### Declaration

    public static readonly long DefaultMaxSize

##### Field Value

Type | Description
--- | ---
System.Int64 |

#### DefaultRateTimeInterval

The default rate time interval.

##### Declaration

    public static readonly TimeSpan DefaultRateTimeInterval

##### Field Value

Type | Description
--- | ---
System.TimeSpan |

#### DefaultSubIntervals

The default sub intervals.

##### Declaration

    public const int DefaultSubIntervals = 5

##### Field Value

Type | Description
--- | ---
System.Int32 |

### Properties

#### EmptyPagesPoolSize

Gets or sets the minimal number of empty pages to be present in reuse lists for this memory policy. This parameter ensures that Ignite will be able to successfully evict old data entries when the size of (key, value) pair is slightly larger than page size / 2. Increase this parameter if cache can contain very big entries (total size of pages in this pool should be enough to contain largest cache entry).

##### Declaration

    public int EmptyPagesPoolSize { get; set; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### EvictionThreshold

Gets or sets the threshold for memory pages eviction initiation. For instance, if the threshold is 0.9 it means that the page memory will start the eviction only after 90% of the memory region (defined by this policy) is occupied.

##### Declaration

    public double EvictionThreshold { get; set; }

##### Property Value

Type | Description
--- | ---
System.Double |

#### InitialSize

Gets or sets initial memory region size defined by this memory policy. When the used memory size exceeds this value, new chunks of memory will be allocated.

##### Declaration

    public long InitialSize { get; set; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### MaxSize

Sets maximum memory region size defined by this memory policy. The total size should not be less than 10 MB due to internal data structures overhead.

##### Declaration

    public long MaxSize { get; set; }

##### Property Value

Type | Description
--- | ---
System.Int64 |

#### MetricsEnabled

Gets or sets a value indicating whether memory metrics should be enabled.

Metrics can be retrieved with GetMemoryMetrics() method.

##### Declaration

    public bool MetricsEnabled { get; set; }

##### Property Value

Type | Description
--- | ---
System.Boolean |

#### Name

Gets or sets the memory policy name. Defaults to DefaultDefaultMemoryPolicyName.

##### Declaration

    public string Name { get; set; }

##### Property Value

Type | Description
--- | ---
System.String |

#### PageEvictionMode

Gets or sets the page eviction mode. If Disabled is used (default) then an out of memory exception will be thrown if the memory region usage, defined by this memory policy, goes beyond MaxSize.

##### Declaration

    public DataPageEvictionMode PageEvictionMode { get; set; }

##### Property Value

Type | Description
--- | ---
DataPageEvictionMode |

#### RateTimeInterval

Gets or sets the rate time interval for AllocationRate and EvictionRate monitoring purposes.

For instance, after setting the interval to 60 seconds, subsequent calls to AllocationRate will return average allocation rate (pages per second) for the last minute.

##### Declaration

    public TimeSpan RateTimeInterval { get; set; }

##### Property Value

Type | Description
--- | ---
System.TimeSpan |

#### SubIntervals

Gets or sets the number of sub intervals to split RateTimeInterval into to calculate AllocationRate and EvictionRate.

Bigger value results in more accurate metrics.

##### Declaration

    public int SubIntervals { get; set; }

##### Property Value

Type | Description
--- | ---
System.Int32 |

#### SwapFilePath

Gets or sets the the path to the memory-mapped file the memory region defined by this memory policy will be mapped to. Having the path set, allows relying on swapping capabilities of an underlying operating system for the memory region.

Null for no swap.

##### Declaration

    public string SwapFilePath { get; set; }

##### Property Value

Type | Description
--- | ---
System.String |