Apache Ignite.NET
Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration Class Reference

Defines page memory policy configuration. See MemoryConfiguration.MemoryPolicies. More...

Public Member Functions

 MemoryPolicyConfiguration ()
 Initializes a new instance of the MemoryPolicyConfiguration class. More...
 

Public Attributes

const double DefaultEvictionThreshold = 0.9
 The default eviction threshold. More...
 
const int DefaultEmptyPagesPoolSize = 100
 The default empty pages pool size. More...
 
const long DefaultInitialSize = 256 * 1024 * 1024
 The default initial size. More...
 
const int DefaultSubIntervals = 5
 The default sub intervals. More...
 

Static Public Attributes

static readonly long DefaultMaxSize = (long) ((long) NativeMethods.GetTotalPhysicalMemory() * 0.8)
 The default maximum size, equals to 80% of total RAM. More...
 
static readonly TimeSpan DefaultRateTimeInterval = TimeSpan.FromSeconds(60)
 The default rate time interval. More...
 

Properties

string Name [get, set]
 Gets or sets the memory policy name. Defaults to MemoryConfiguration.DefaultDefaultMemoryPolicyName. More...
 
long InitialSize [get, set]
 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. More...
 
long MaxSize [get, set]
 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. More...
 
string SwapFilePath [get, set]
 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. More...
 
DataPageEvictionMode PageEvictionMode [get, set]
 Gets or sets the page eviction mode. If DataPageEvictionMode.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. More...
 
double EvictionThreshold [get, set]
 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. More...
 
int EmptyPagesPoolSize [get, set]
 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). More...
 
bool MetricsEnabled [get, set]
 Gets or sets a value indicating whether memory metrics should be enabled. More...
 
TimeSpan RateTimeInterval [get, set]
 Gets or sets the rate time interval for IMemoryMetrics.AllocationRate and IMemoryMetrics.EvictionRate monitoring purposes. More...
 
int SubIntervals [get, set]
 Gets or sets the number of sub intervals to split RateTimeInterval into to calculate IMemoryMetrics.AllocationRate and IMemoryMetrics.EvictionRate. More...
 

Detailed Description

Constructor & Destructor Documentation

Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.MemoryPolicyConfiguration ( )

Member Data Documentation

const int Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.DefaultEmptyPagesPoolSize = 100
const double Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.DefaultEvictionThreshold = 0.9
const long Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.DefaultInitialSize = 256 * 1024 * 1024
readonly long Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.DefaultMaxSize = (long) ((long) NativeMethods.GetTotalPhysicalMemory() * 0.8)
static
readonly TimeSpan Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.DefaultRateTimeInterval = TimeSpan.FromSeconds(60)
static
const int Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.DefaultSubIntervals = 5

Property Documentation

int Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.EmptyPagesPoolSize
getset
double Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.EvictionThreshold
getset
long Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.InitialSize
getset
long Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.MaxSize
getset
bool Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.MetricsEnabled
getset

Metrics can be retrieved with IIgnite.GetMemoryMetrics() method.

string Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.Name
getset
DataPageEvictionMode Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.PageEvictionMode
getset
TimeSpan Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.RateTimeInterval
getset

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

int Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.SubIntervals
getset

Bigger value results in more accurate metrics.

string Apache.Ignite.Core.Cache.Configuration.MemoryPolicyConfiguration.SwapFilePath
getset

Null for no swap.