Show / Hide Table of Contents

# Class DataStorageConfiguration

Data storage configuration for Ignite page memory.

The page memory is a manageable off-heap based memory architecture that divides all expandable data 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 expandable data region. All the caches that will be configured in an application will be mapped to this data region by default, thus, all the cache data will reside in that data region.

##### Inheritance

System.Object
DataStorageConfiguration

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

### Constructors

#### DataStorageConfiguration()

Initializes a new instance of the DataStorageConfiguration class.

##### Declaration

    public DataStorageConfiguration()

### Fields

#### DefaultCheckpointFrequency

Default value for CheckpointFrequency.

##### Declaration

    public static readonly TimeSpan DefaultCheckpointFrequency

##### Field Value

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

#### DefaultCheckpointThreads

Default value for CheckpointThreads.

##### Declaration

    public const int DefaultCheckpointThreads = 4

##### Field Value

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

#### DefaultCheckpointWriteOrder

Default value for CheckpointWriteOrder.

##### Declaration

    public const CheckpointWriteOrder DefaultCheckpointWriteOrder = CheckpointWriteOrder.Sequential

##### Field Value

Type | Description
--- | ---
CheckpointWriteOrder |

#### DefaultConcurrencyLevel

The default concurrency level.

##### Declaration

    public static readonly int DefaultConcurrencyLevel

##### Field Value

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

#### DefaultDataRegionName

Default name is assigned to default data region if no user-defined DefaultDataRegionConfiguration is specified.

##### Declaration

    public const string DefaultDataRegionName = "default"

##### Field Value

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

#### DefaultLockWaitTime

Default value for LockWaitTime.

##### Declaration

    public static readonly TimeSpan DefaultLockWaitTime

##### Field Value

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

#### DefaultMaxWalArchiveSize

Default value for MaxWalArchiveSize.

##### Declaration

    public const long DefaultMaxWalArchiveSize = 1073741824L

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

#### DefaultPageSize

The default page size.

##### Declaration

    public const int DefaultPageSize = 4096

##### Field Value

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

#### DefaultSystemRegionInitialSize

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

##### Declaration

    public const long DefaultSystemRegionInitialSize = 41943040L

##### Field Value

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

#### DefaultSystemRegionMaxSize

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

##### Declaration

    public const long DefaultSystemRegionMaxSize = 104857600L

##### Field Value

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

#### DefaultTlbSize

Default value for WalThreadLocalBufferSize.

##### Declaration

    public const int DefaultTlbSize = 131072

##### Field Value

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

#### DefaultWalArchivePath

Default value for WalArchivePath.

##### Declaration

    public const string DefaultWalArchivePath = "db/wal/archive"

##### Field Value

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

#### DefaultWalAutoArchiveAfterInactivity

Default value for WalFlushFrequency.

##### Declaration

    public static readonly TimeSpan DefaultWalAutoArchiveAfterInactivity

##### Field Value

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

#### DefaultWalCompactionEnabled

Default value for WalCompactionEnabled.

##### Declaration

    public const bool DefaultWalCompactionEnabled = false

##### Field Value

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

#### DefaultWalFlushFrequency

Default value for WalFlushFrequency.

##### Declaration

    public static readonly TimeSpan DefaultWalFlushFrequency

##### Field Value

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

#### DefaultWalFsyncDelayNanos

Default value for WalFsyncDelayNanos.

##### Declaration

    public const long DefaultWalFsyncDelayNanos = 1000L

##### Field Value

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

#### DefaultWalHistorySize

Default value for WalHistorySize.

##### Declaration

    public const int DefaultWalHistorySize = 20

##### Field Value

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

#### DefaultWalMode

Default value for WalMode.

##### Declaration

    public const WalMode DefaultWalMode = WalMode.LogOnly

##### Field Value

Type | Description
--- | ---
WalMode |

#### DefaultWalPageCompression

Default value for WalPageCompression.

##### Declaration

    public const DiskPageCompression DefaultWalPageCompression = DiskPageCompression.Disabled

##### Field Value

Type | Description
--- | ---
DiskPageCompression |

#### DefaultWalPath

Default value for WalPath.

##### Declaration

    public const string DefaultWalPath = "db/wal"

##### Field Value

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

#### DefaultWalRecordIteratorBufferSize

Default value for WalRecordIteratorBufferSize.

##### Declaration

    public const int DefaultWalRecordIteratorBufferSize = 67108864

##### Field Value

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

#### DefaultWalSegments

Default value for WalSegments.

##### Declaration

    public const int DefaultWalSegments = 10

##### Field Value

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

#### DefaultWalSegmentSize

Default value for WalSegmentSize.

##### Declaration

    public const int DefaultWalSegmentSize = 67108864

##### Field Value

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

#### DefaultWriteThrottlingEnabled

Default value for WriteThrottlingEnabled.

##### Declaration

    public const bool DefaultWriteThrottlingEnabled = false

##### Field Value

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

### Properties

#### AlwaysWriteFullPages

Gets or sets a value indicating whether full pages should always be written.

##### Declaration

    public bool AlwaysWriteFullPages { get; set; }

##### Property Value

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

#### CheckpointFrequency

Gets or sets the checkpointing frequency which is a minimal interval when the dirty pages will be written to the Persistent Store.

##### Declaration

    public TimeSpan CheckpointFrequency { get; set; }

##### Property Value

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

#### CheckpointReadLockTimeout

Gets or sets the timeout for checkpoint read lock acquisition.

##### Declaration

    public TimeSpan? CheckpointReadLockTimeout { get; set; }

##### Property Value

Type | Description
--- | ---
System.Nullable<System.TimeSpan> |

#### CheckpointThreads

Gets or sets the number of threads for checkpointing.

##### Declaration

    public int CheckpointThreads { get; set; }

##### Property Value

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

#### CheckpointWriteOrder

Gets or sets the checkpoint page write order on disk.

##### Declaration

    public CheckpointWriteOrder CheckpointWriteOrder { get; set; }

##### Property Value

Type | Description
--- | ---
CheckpointWriteOrder |

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

#### DataRegionConfigurations

Gets or sets the data region configurations.

##### Declaration

    public ICollection<DataRegionConfiguration> DataRegionConfigurations { get; set; }

##### Property Value

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

#### DefaultDataRegionConfiguration

Gets or sets the default region configuration.

##### Declaration

    public DataRegionConfiguration DefaultDataRegionConfiguration { get; set; }

##### Property Value

Type | Description
--- | ---
DataRegionConfiguration |

#### LockWaitTime

Gets or sets the persistent manager file lock wait time.

##### Declaration

    public TimeSpan LockWaitTime { get; set; }

##### Property Value

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

#### MaxWalArchiveSize

Gets or sets maximum size of wal archive folder, in bytes.

##### Declaration

    public long MaxWalArchiveSize { get; set; }

##### Property Value

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

#### MetricsEnabled

Gets or sets a value indicating whether to enable data storage metrics. See GetDataStorageMetrics().

##### Declaration

    public bool MetricsEnabled { get; set; }

##### Property Value

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

#### MetricsRateTimeInterval

Gets or sets the length of the time interval for rate-based metrics. This interval defines a window over which hits will be tracked.

##### Declaration

    public TimeSpan MetricsRateTimeInterval { get; set; }

##### Property Value

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

#### MetricsSubIntervalCount

Number of sub-intervals to split the MetricsRateTimeInterval into to track the update history.

##### Declaration

    public int MetricsSubIntervalCount { get; set; }

##### Property Value

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

#### PageSize

Gets or sets the size of the memory page.

##### Declaration

    public int PageSize { get; set; }

##### Property Value

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

#### StoragePath

Gets or sets the path where data and indexes will be persisted.

##### Declaration

    public string StoragePath { get; set; }

##### Property Value

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

#### SystemRegionInitialSize

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

##### Declaration

    public long SystemRegionInitialSize { get; set; }

##### Property Value

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

#### SystemRegionMaxSize

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

##### Declaration

    public long SystemRegionMaxSize { get; set; }

##### Property Value

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

#### WalArchivePath

Gets or sets the path to the directory where WAL (Write Ahead Log) archive is stored. Every WAL segment will be fully copied to this directory before it can be reused for WAL purposes.

##### Declaration

    public string WalArchivePath { get; set; }

##### Property Value

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

#### WalAutoArchiveAfterInactivity

Gets or sets the inactivity time after which to run WAL segment auto archiving.

##### Declaration

    public TimeSpan WalAutoArchiveAfterInactivity { get; set; }

##### Property Value

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

#### WalCompactionEnabled

Gets or sets flag indicating whether WAL compaction is enabled. If true, system filters and compresses WAL archive in background. Compressed WAL archive gets automatically decompressed on demand.

##### Declaration

    public bool WalCompactionEnabled { get; set; }

##### Property Value

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

#### WalFlushFrequency

Gets or sets the WAL (Write Ahead Log) flush frequency.

##### Declaration

    public TimeSpan WalFlushFrequency { get; set; }

##### Property Value

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

#### WalFsyncDelayNanos

Gets or sets the WAL (Write Ahead Log) fsync (disk sync) delay, in nanoseconds

##### Declaration

    public long WalFsyncDelayNanos { get; set; }

##### Property Value

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

#### WalHistorySize

Gets or sets the number of checkpoints to store in WAL (Write Ahead Log) history.

##### Declaration

    public int WalHistorySize { get; set; }

##### Property Value

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

#### WalMode

Gets or sets the WAL (Write Ahead Log) mode.

##### Declaration

    public WalMode WalMode { get; set; }

##### Property Value

Type | Description
--- | ---
WalMode |

#### WalPageCompression

Gets or sets the compression algorithm for WAL page snapshot records.

##### Declaration

    public DiskPageCompression WalPageCompression { get; set; }

##### Property Value

Type | Description
--- | ---
DiskPageCompression |

#### WalPageCompressionLevel

Gets or sets the compression level for WAL page snapshot records.

##### Declaration

    public int ? WalPageCompressionLevel { get; set; }

##### Property Value

Type | Description
--- | ---
System.Nullable<System.Int32> |

#### WalPath

Gets or sets the path to the directory where WAL (Write Ahead Log) is stored.

##### Declaration

    public string WalPath { get; set; }

##### Property Value

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

#### WalRecordIteratorBufferSize

Gets or sets the size of the WAL (Write Ahead Log) record iterator buffer, in bytes.

##### Declaration

    public int WalRecordIteratorBufferSize { get; set; }

##### Property Value

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

#### WalSegments

Gets or sets a number of WAL (Write Ahead Log) segments to work with. For performance reasons, the whole WAL is split into files of fixed length called segments.

##### Declaration

    public int WalSegments { get; set; }

##### Property Value

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

#### WalSegmentSize

Gets or sets the size of the WAL (Write Ahead Log) segment. For performance reasons, the whole WAL is split into files of fixed length called segments.

##### Declaration

    public int WalSegmentSize { get; set; }

##### Property Value

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

#### WalThreadLocalBufferSize

Gets or sets the size of the TLB (Thread-Local Buffer), in bytes.

##### Declaration

    public int WalThreadLocalBufferSize { get; set; }

##### Property Value

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

#### WriteThrottlingEnabled

Gets or sets a value indicating whether threads that generate dirty pages too fast during ongoing checkpoint will be throttled.

##### Declaration

    public bool WriteThrottlingEnabled { get; set; }

##### Property Value

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