Show / Hide Table of Contents

# Class MemoryConfiguration

A page memory configuration for an Apache Ignite node. The page memory is a manageable off-heap based memory architecture that divides all continuously allocated memory regions into pages of fixed size. An individual page can store one or many cache key-value entries that allows reusing the memory in the most efficient way and avoid memory fragmentation issues.

By default, the page memory allocates a single continuous memory region. All the caches that will be configured in an application will be mapped to this memory region by default, thus, all the cache data will reside in that memory region.

If initial size of the default memory region doesn't satisfy requirements or it's required to have multiple memory regions with different properties then MemoryPolicyConfiguration can be used for both scenarios. For instance, using memory policies you can define memory regions of different maximum size, eviction policies, swapping options, etc. Once you define a new memory region you can bind particular Ignite caches to it.

To learn more about memory policies refer to MemoryPolicyConfiguration documentation.

Obsolete, use DataStorageConfiguration.

##### Inheritance

System.Object
MemoryConfiguration

##### 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 DataStorageConfiguration.")]
    public class MemoryConfiguration

### Constructors

#### MemoryConfiguration()

Initializes a new instance of the MemoryConfiguration class.

##### Declaration

    public MemoryConfiguration()

#### MemoryConfiguration(IBinaryRawReader)

Initializes a new instance of the MemoryConfiguration class.

##### Declaration

    public MemoryConfiguration(IBinaryRawReader reader)

##### Parameters

Type | Name | Description
--- | --- | ---
IBinaryRawReader | reader | The reader.

### Fields

#### DefaultDefaultMemoryPolicyName

The default value for DefaultMemoryPolicyName.

##### Declaration

    public const string DefaultDefaultMemoryPolicyName = "default"

##### Field Value

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

#### DefaultPageSize

The default page size.

##### Declaration

    public const int DefaultPageSize = 4096

##### Field Value

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

#### DefaultSystemCacheInitialSize

Default size of a memory chunk reserved for system cache initially.

##### Declaration

    public const long DefaultSystemCacheInitialSize = 41943040L

##### Field Value

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

#### DefaultSystemCacheMaxSize

Default max size of a memory chunk for the system cache.

##### Declaration

    public const long DefaultSystemCacheMaxSize = 104857600L

##### Field Value

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

### Properties

#### ConcurrencyLevel

Gets or sets the number of concurrent segments in Ignite internal page mapping tables.

##### Declaration

    public int ConcurrencyLevel { get; set; }

##### Property Value

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

#### DefaultMemoryPolicyName

Gets or sets the name of the default memory policy in MemoryPolicies.

##### Declaration

    public string DefaultMemoryPolicyName { get; set; }

##### Property Value

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

#### MemoryPolicies

Gets or sets the memory policies.

##### Declaration

    public ICollection<MemoryPolicyConfiguration> MemoryPolicies { get; set; }

##### Property Value

Type | Description
--- | ---
System.Collections.Generic.ICollection<MemoryPolicyConfiguration> |

#### PageSize

Gets or sets the size of the memory page.

##### Declaration

    public int PageSize { get; set; }

##### Property Value

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

#### SystemCacheInitialSize

Gets or sets the size of a memory chunk reserved for system cache needs.

##### Declaration

    public long SystemCacheInitialSize { get; set; }

##### Property Value

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

#### SystemCacheMaxSize

Gets or sets the maximum memory region size reserved for system cache.

##### Declaration

    public long SystemCacheMaxSize { get; set; }

##### Property Value

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