Show / Hide Table of Contents

# Class DataRegionConfiguration

Defines custom data region configuration for Apache Ignite page memory (see DataStorageConfiguration).

For each configured data region Apache Ignite instantiates respective memory regions with different parameters like maximum size, eviction policy, swapping options, etc. An Apache Ignite cache can be mapped to a particular region using DataRegionName method.

##### Inheritance

System.Object
DataRegionConfiguration

##### 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.Configuration

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

##### Syntax

    public class DataRegionConfiguration

### Constructors

#### DataRegionConfiguration()

Initializes a new instance of the DataRegionConfiguration class.

##### Declaration

    public DataRegionConfiguration()

### 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 |

#### DefaultLazyMemoryAllocation

Default value for LazyMemoryAllocation.

##### Declaration

    public const bool DefaultLazyMemoryAllocation = true

##### Field Value

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

#### DefaultMaxSize

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

##### Declaration

    public static readonly long DefaultMaxSize

##### Field Value

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

#### DefaultMetricsRateTimeInterval

The default rate time interval.

##### Declaration

    public static readonly TimeSpan DefaultMetricsRateTimeInterval

##### Field Value

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

#### DefaultMetricsSubIntervalCount

The default sub intervals.

##### Declaration

    public const int DefaultMetricsSubIntervalCount = 5

##### Field Value

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

#### DefaultPersistenceEnabled

Default value for PersistenceEnabled.

##### Declaration

    public const bool DefaultPersistenceEnabled = false

##### Field Value

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

### Properties

#### CheckpointPageBufferSize

Gets or sets the size of the checkpointing page buffer.

Default is `0`: Ignite will choose buffer size automatically.

##### Declaration

    public long CheckpointPageBufferSize { get; set; }

##### Property Value

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

#### EmptyPagesPoolSize

Gets or sets the minimal number of empty pages to be present in reuse lists for this data region. 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 is occupied.

##### Declaration

    public double EvictionThreshold { get; set; }

##### Property Value

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

#### InitialSize

Gets or sets initial memory region size. 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 |

#### LazyMemoryAllocation

Gets or sets the lazy memory allocation flag.

##### Declaration

    public bool LazyMemoryAllocation { get; set; }

##### Property Value

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

#### MaxSize

Sets maximum memory region size. 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 GetDataRegionMetrics() method.

##### Declaration

    public bool MetricsEnabled { get; set; }

##### Property Value

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

#### MetricsRateTimeInterval

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 MetricsRateTimeInterval { get; set; }

##### Property Value

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

#### MetricsSubIntervalCount

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

Bigger value results in more accurate metrics.

##### Declaration

    public int MetricsSubIntervalCount { get; set; }

##### Property Value

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

#### Name

Gets or sets the data region name.

##### 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 goes beyond MaxSize.

##### Declaration

    public DataPageEvictionMode PageEvictionMode { get; set; }

##### Property Value

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

#### PersistenceEnabled

Gets or sets a value indicating whether disk persistence is enabled for this region. Default is DefaultPersistenceEnabled.

##### Declaration

    public bool PersistenceEnabled { get; set; }

##### Property Value

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

#### SwapPath

Gets or sets the the path to the directory for memory-mapped files.

Null for no swap.

##### Declaration

    public string SwapPath { get; set; }

##### Property Value

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