Package org.apache.ignite.configuration

## Class DataStorageConfiguration

- java.lang.Object
- - org.apache.ignite.configuration.DataStorageConfiguration

- All Implemented Interfaces:
    `Serializable`

      public class DataStorageConfiguration
      extends Object
      implements Serializable

  A durable memory configuration for an Apache Ignite node. The durable memory is a manageable off-heap based memory architecture that divides all expandable data regions into pages of fixed size (see `getPageSize()`). 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 durable memory allocates a single expandable data region with default settings. 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. Parameters of default data region can be changed by setting `setDefaultDataRegionConfiguration(DataRegionConfiguration)`. Other data regions (except default) can be configured with `setDataRegionConfigurations(DataRegionConfiguration...)`.

  Data region can be used in memory-only mode, or in persistent mode, when memory is used as a caching layer for disk. Persistence for data region can be turned on with `DataRegionConfiguration.setPersistenceEnabled(boolean)` flag. To learn more about data regions refer to `DataRegionConfiguration` documentation.

  Sample configuration below shows how to make 5 GB data regions the default one for Apache Ignite:

           <property name="dataStorageConfiguration">
               <bean class="org.apache.ignite.configuration.DataStorageConfiguration">
                   <property name="systemCacheInitialSize" value="#{100L * 1024 * 1024}"/>

                   <property name="defaultDataRegionConfiguration">
                       <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
                           <property name="name" value="default_data_region"/>
                           <property name="initialSize" value="#{5L * 1024 * 1024 * 1024}"/>
                       </bean>
                   </property>
               </bean>
           </property>

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static long` | `DFLT_CDC_WAL_DIRECTORY_MAX_SIZE` | Default change data capture directory maximum size.
    `static int` | `DFLT_CHECKPOINT_FREQ` |
    `static int` | `DFLT_CHECKPOINT_THREADS` | Default number of checkpoint threads.
    `static CheckpointWriteOrder` | `DFLT_CHECKPOINT_WRITE_ORDER` | Default checkpoint write order.
    `static DiskPageCompression` | `DFLT_CP_RECOVERY_DATA_COMRESSION` | Default compression algorithm for checkpoint recovery data.
    `static String` | `DFLT_DATA_REG_DEFAULT_NAME` | This name is assigned to default Dataregion if no user-defined default MemPlc is specified
    `static long` | `DFLT_DATA_REGION_INITIAL_SIZE` | Default data region start size (256 MB).
    `static long` | `DFLT_DATA_REGION_MAX_SIZE` | Default data region's size is 20% of physical memory available on current machine.
    `static int` | `DFLT_DEFRAGMENTATION_THREAD_POOL_SIZE` | Default defragmentation thread pool size.
    `static int` | `DFLT_LOCK_WAIT_TIME` | Lock default wait time, 10 sec.
    `static boolean` | `DFLT_METRICS_ENABLED` | Deprecated. Will be removed in upcoming releases.
    `static int` | `DFLT_PAGE_SIZE` | Default memory page size.
    `static int` | `DFLT_RATE_TIME_INTERVAL_MILLIS` | Default length of interval over which rate-based metric is calculated.
    `static int` | `DFLT_SUB_INTERVALS` | Default amount of sub intervals to calculate rate-based metric.
    `static int` | `DFLT_TLB_SIZE` | Default thread local buffer size.
    `static boolean` | `DFLT_USE_ASYNC_FILE_IO_FACTORY` |
    `static boolean` | `DFLT_WAL_ALWAYS_WRITE_FULL_PAGES` | Default wal always write full pages.
    `static long` | `DFLT_WAL_ARCHIVE_MAX_SIZE` | Default max size of WAL archive files, in bytes.
    `static String` | `DFLT_WAL_ARCHIVE_PATH` | Default wal archive directory.
    `static int` | `DFLT_WAL_BUFF_SIZE` | Default thread local buffer size.
    `static String` | `DFLT_WAL_CDC_PATH` | Default change data capture directory.
    `static boolean` | `DFLT_WAL_COMPACTION_ENABLED` | Default wal compaction enabled.
    `static int` | `DFLT_WAL_COMPACTION_LEVEL` | Default wal compaction level.
    `static int` | `DFLT_WAL_FLUSH_FREQ` | Default Wal flush frequency.
    `static int` | `DFLT_WAL_FSYNC_DELAY` | Default wal fsync delay.
    `static int` | `DFLT_WAL_HISTORY_SIZE` | Default number of checkpoints to be kept in WAL after checkpoint is finished
    `static WALMode` | `DFLT_WAL_MODE` | Default wal mode.
    `static DiskPageCompression` | `DFLT_WAL_PAGE_COMPRESSION` | Default compression algorithm for WAL page snapshot records.
    `static String` | `DFLT_WAL_PATH` | Default wal directory.
    `static int` | `DFLT_WAL_RECORD_ITERATOR_BUFFER_SIZE` | Default wal record iterator buffer size.
    `static int` | `DFLT_WAL_SEGMENT_SIZE` | Default WAL file segment size, 64MBytes
    `static int` | `DFLT_WAL_SEGMENTS` |
    `static boolean` | `DFLT_WRITE_RECOVERY_DATA_ON_CP` | Default value for `writeRecoveryDataOnCheckpoint` property.
    `static boolean` | `DFLT_WRITE_THROTTLING_ENABLED` | Default write throttling enabled.
    `static long` | `HALF_MAX_WAL_ARCHIVE_SIZE` | Value used to indicate the use of half of the `getMaxWalArchiveSize()`.
    `static int` | `MAX_PAGE_SIZE` | Max memory page size.
    `static int` | `MIN_PAGE_SIZE` | Min memory page size.
    `static long` | `UNLIMITED_WAL_ARCHIVE` | Value used for making WAL archive size unlimited.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DataStorageConfiguration()` | Creates valid durable memory configuration with all default values.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `long` | `getCdcWalDirectoryMaxSize()` | Sets the `CDC directory` maximum size in bytes.
    `String` | `getCdcWalPath()` | Gets a path to the CDC directory.
    `long` | `getCheckpointFrequency()` | Gets checkpoint frequency.
    `Long` | `getCheckpointReadLockTimeout()` | Returns timeout for checkpoint read lock acquisition.
    `DiskPageCompression` | `getCheckpointRecoveryDataCompression()` | Gets compression algorithm for checkpoint recovery data.
    `Integer` | `getCheckpointRecoveryDataCompressionLevel()` | Gets `getCheckpointRecoveryDataCompression()` algorithm specific compression level.
    `int` | `getCheckpointThreads()` | Gets a number of threads to use for the checkpoint purposes.
    `CheckpointWriteOrder` | `getCheckpointWriteOrder()` | This property defines order of writing pages to disk storage during checkpoint.
    `int` | `getConcurrencyLevel()` | Returns the number of concurrent segments in Ignite internal page mapping tables.
    `DataRegionConfiguration[]` | `getDataRegionConfigurations()` | Gets an array of all data regions configured.
    `DataRegionConfiguration` | `getDefaultDataRegionConfiguration()` |
    `@Nullable WarmUpConfiguration` | `getDefaultWarmUpConfiguration()` | Gets default warm-up configuration.
    `int` | `getDefragmentationThreadPoolSize()` | Maximum number of partitions which can be defragmented at the same time.
    `EncryptionConfiguration` | `getEncryptionConfiguration()` | Gets encryyption configuration.
    `String[]` | `getExtraSnapshotPaths()` |
    `String[]` | `getExtraStoragePaths()` |
    `org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory` | `getFileIOFactory()` | Factory to provide implementation of FileIO interface which is used for data storage files read/write operations
    `long` | `getLockWaitTime()` | Timeout in milliseconds to wait when acquiring persistence store lock file before failing the local node.
    `long` | `getMaxWalArchiveSize()` | Gets a max allowed size(in bytes) of WAL archives.
    `@Nullable MemoryAllocator` | `getMemoryAllocator()` |
    `long` | `getMetricsRateTimeInterval()` | Deprecated. Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.
    `int` | `getMetricsSubIntervalCount()` | Deprecated. Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.
    `long` | `getMinWalArchiveSize()` | Gets a min allowed size(in bytes) of WAL archives.
    `int` | `getPageSize()` | The page memory consists of one or more expandable data regions defined by `DataRegionConfiguration`.
    `String` | `getStoragePath()` |
    `SystemDataRegionConfiguration` | `getSystemDataRegionConfiguration()` | Configuration of system data region.
    `long` | `getSystemRegionInitialSize()` | Deprecated. use `SystemDataRegionConfiguration.getInitialSize()`.
    `long` | `getSystemRegionMaxSize()` | Deprecated. use `SystemDataRegionConfiguration.getMaxSize()`.
    `String` | `getWalArchivePath()` | Gets a path to the WAL archive directory.
    `long` | `getWalAutoArchiveAfterInactivity()` |
    `int` | `getWalBufferSize()` | Property defines size(in bytes) of WAL buffer.
    `int` | `getWalCompactionLevel()` |
    `long` | `getWalFlushFrequency()` | This property define how often WAL will be fsync-ed in `BACKGROUND` mode.
    `long` | `getWalForceArchiveTimeout()` |
    `long` | `getWalFsyncDelayNanos()` |
    `int` | `getWalHistorySize()` | Deprecated. Instead of walHistorySize use maxWalArchiveSize for manage of archive size.
    `WALMode` | `getWalMode()` | Property that defines behavior of wal fsync.
    `DiskPageCompression` | `getWalPageCompression()` | Gets compression algorithm for WAL page snapshot records.
    `Integer` | `getWalPageCompressionLevel()` | Gets `algorithm` specific WAL page compression level.
    `String` | `getWalPath()` | Gets a path to the directory where WAL is stored.
    `int` | `getWalRecordIteratorBufferSize()` | Property define how many bytes iterator read from disk (for one reading), during go ahead wal.
    `int` | `getWalSegments()` | Gets a number of WAL segments to work with.
    `int` | `getWalSegmentSize()` | Gets size(in bytes) of a WAL segment.
    `int` | `getWalThreadLocalBufferSize()` | Property for size of thread local buffer.
    `boolean` | `isAlwaysWriteFullPages()` |
    `boolean` | `isMetricsEnabled()` | Deprecated. Will be removed in upcoming releases.
    `boolean` | `isWalCompactionEnabled()` |
    `boolean` | `isWalHistorySizeParameterUsed()` | If WalHistorySize was set by user will use this parameter for compatibility.
    `boolean` | `isWriteRecoveryDataOnCheckpoint()` |
    `boolean` | `isWriteThrottlingEnabled()` |
    `DataStorageConfiguration` | `setAlwaysWriteFullPages​(boolean alwaysWriteFullPages)` | Sets flag that enforces writing full page to WAL on every change (instead of delta record).
    `DataStorageConfiguration` | `setCdcWalDirectoryMaxSize​(long cdcWalDirMaxSize)` | Sets the CDC directory maximum size in bytes.
    `DataStorageConfiguration` | `setCdcWalPath​(String cdcWalPath)` | Sets a path for the CDC directory.
    `DataStorageConfiguration` | `setCheckpointFrequency​(long checkpointFreq)` | Sets the checkpoint frequency which is a minimal interval when the dirty pages will be written to the Persistent Store.
    `DataStorageConfiguration` | `setCheckpointReadLockTimeout​(long checkpointReadLockTimeout)` | Sets timeout for checkpoint read lock acquisition.
    `DataStorageConfiguration` | `setCheckpointRecoveryDataCompression​(DiskPageCompression cpRecoveryDataCompression)` | Sets compression algorithm for checkpoint recovery data.
    `DataStorageConfiguration` | `setCheckpointRecoveryDataCompressionLevel​(Integer cpRecoveryDataCompressionLevel)` | Sets `setCheckpointRecoveryDataCompression(DiskPageCompression)` algorithm specific compression level.
    `DataStorageConfiguration` | `setCheckpointThreads​(int checkpointThreads)` | Sets a number of threads to use for the checkpoint purposes.
    `DataStorageConfiguration` | `setCheckpointWriteOrder​(CheckpointWriteOrder checkpointWriteOrder)` | This property defines order of writing pages to disk storage during checkpoint.
    `DataStorageConfiguration` | `setConcurrencyLevel​(int concLvl)` | Sets the number of concurrent segments in Ignite internal page mapping tables.
    `DataStorageConfiguration` | `setDataRegionConfigurations​(DataRegionConfiguration... dataRegionConfigurations)` | Sets data regions configurations.
    `DataStorageConfiguration` | `setDefaultDataRegionConfiguration​(DataRegionConfiguration dfltDataRegConf)` | Overrides configuration of default data region which has been created automatically.
    `DataStorageConfiguration` | `setDefaultWarmUpConfiguration​(@Nullable WarmUpConfiguration dfltWarmUpCfg)` | Sets default warm-up configuration.
    `DataStorageConfiguration` | `setDefragmentationThreadPoolSize​(int defragmentationThreadPoolSize)` | Sets maximum number of partitions which can be defragmented at the same time.
    `DataStorageConfiguration` | `setEncryptionConfiguration​(EncryptionConfiguration encCfg)` | Sets encryption configuration.
    `DataStorageConfiguration` | `setExtraSnapshotPaths​(String... extraSnapshotPaths)` | Sets a paths to the root directories where the snapshot files stored.
    `DataStorageConfiguration` | `setExtraStoragePaths​(String... extraStoragePaths)` | Sets a paths to the root directories where the Persistent Store can persist data and indexes.
    `DataStorageConfiguration` | `setFileIOFactory​(org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory fileIOFactory)` | Sets factory to provide implementation of FileIO interface which is used for data storage files read/write operations
    `DataStorageConfiguration` | `setLockWaitTime​(long lockWaitTime)` | Timeout in milliseconds to wait when acquiring persistence store lock file before failing the local node.
    `DataStorageConfiguration` | `setMaxWalArchiveSize​(long walArchiveMaxSize)` | Sets a max allowed size(in bytes) of WAL archives.
    `DataStorageConfiguration` | `setMemoryAllocator​(MemoryAllocator allocator)` | Sets default memory allocator for all memory regions.
    `DataStorageConfiguration` | `setMetricsEnabled​(boolean metricsEnabled)` | Deprecated. Will be removed in upcoming releases.
    `DataStorageConfiguration` | `setMetricsRateTimeInterval​(long metricsRateTimeInterval)` | Deprecated. Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.
    `DataStorageConfiguration` | `setMetricsSubIntervalCount​(int metricsSubIntervalCnt)` | Deprecated. Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.
    `DataStorageConfiguration` | `setMinWalArchiveSize​(long walArchiveMinSize)` | Sets a min allowed size(in bytes) of WAL archives.
    `DataStorageConfiguration` | `setPageSize​(int pageSize)` | Changes the page size.
    `DataStorageConfiguration` | `setStoragePath​(String persistenceStorePath)` | Sets a path to the root directory where the Persistent Store will persist data and indexes.
    `DataStorageConfiguration` | `setSystemDataRegionConfiguration​(SystemDataRegionConfiguration sysDataRegConf)` | Overrides configuration of system data region which has been created automatically.
    `DataStorageConfiguration` | `setSystemRegionInitialSize​(long sysRegionInitSize)` | Deprecated. use `SystemDataRegionConfiguration.setInitialSize(long)`.
    `DataStorageConfiguration` | `setSystemRegionMaxSize​(long sysRegionMaxSize)` | Deprecated. use `SystemDataRegionConfiguration.setMaxSize(long)`.
    `DataStorageConfiguration` | `setWalArchivePath​(String walArchivePath)` | Sets a path for the WAL archive directory.
    `DataStorageConfiguration` | `setWalAutoArchiveAfterInactivity​(long walAutoArchiveAfterInactivity)` | Note: setting this value with `WALMode.FSYNC` may generate file size overhead for WAL segments in case grid is used rarely.
    `DataStorageConfiguration` | `setWalBufferSize​(int walBuffSize)` | Property defines size(in bytes) of WAL buffer.
    `DataStorageConfiguration` | `setWalCompactionEnabled​(boolean walCompactionEnabled)` | Sets flag indicating whether WAL compaction is enabled.
    `void` | `setWalCompactionLevel​(int walCompactionLevel)` |
    `DataStorageConfiguration` | `setWalFlushFrequency​(long walFlushFreq)` | This property define how often WAL will be fsync-ed in `BACKGROUND` mode.
    `DataStorageConfiguration` | `setWalForceArchiveTimeout​(long walForceArchiveTimeout)` |
    `DataStorageConfiguration` | `setWalFsyncDelayNanos​(long walFsyncDelayNanos)` | Sets property that allows to trade latency for throughput in `WALMode.FSYNC` mode.
    `DataStorageConfiguration` | `setWalHistorySize​(int walHistSize)` | Deprecated. Instead of walHistorySize use maxWalArchiveSize for manage of archive size.
    `DataStorageConfiguration` | `setWalMode​(WALMode walMode)` | Sets property that defines behavior of wal fsync.
    `DataStorageConfiguration` | `setWalPageCompression​(DiskPageCompression walPageCompression)` | Sets compression algorithm for WAL page snapshot records.
    `DataStorageConfiguration` | `setWalPageCompressionLevel​(Integer walPageCompressionLevel)` | Sets `algorithm` specific page compression level.
    `DataStorageConfiguration` | `setWalPath​(String walStorePath)` | Sets a path to the directory where WAL is stored.
    `DataStorageConfiguration` | `setWalRecordIteratorBufferSize​(int walRecordIterBuffSize)` | Sets property defining how many bytes iterator read from disk (for one reading), during go ahead wal.
    `DataStorageConfiguration` | `setWalSegments​(int walSegments)` | Sets a number of WAL segments to work with.
    `DataStorageConfiguration` | `setWalSegmentSize​(int walSegmentSize)` | Sets size(in bytes) of a WAL segment.
    `DataStorageConfiguration` | `setWalThreadLocalBufferSize​(int walTlbSize)` | Sets size of thread local buffer.
    `DataStorageConfiguration` | `setWriteRecoveryDataOnCheckpoint​(boolean writeRecoveryDataOnCheckpoint)` | Sets mode for storing page recovery data.
    `DataStorageConfiguration` | `setWriteThrottlingEnabled​(boolean writeThrottlingEnabled)` | Sets flag indicating whether write throttling is enabled.
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### UNLIMITED_WAL_ARCHIVE

          public static final long UNLIMITED_WAL_ARCHIVE

      Value used for making WAL archive size unlimited.
      See Also:
        Constant Field Values

    - #### DFLT_DATA_REGION_INITIAL_SIZE

          public static final long DFLT_DATA_REGION_INITIAL_SIZE

      Default data region start size (256 MB).
      See Also:
        Constant Field Values

    - #### DFLT_DATA_REGION_MAX_SIZE

          public static final long DFLT_DATA_REGION_MAX_SIZE

      Default data region's size is 20% of physical memory available on current machine.

    - #### DFLT_PAGE_SIZE

          public static final int DFLT_PAGE_SIZE

      Default memory page size.
      See Also:
        Constant Field Values

    - #### MAX_PAGE_SIZE

          public static final int MAX_PAGE_SIZE

      Max memory page size.
      See Also:
        Constant Field Values

    - #### MIN_PAGE_SIZE

          public static final int MIN_PAGE_SIZE

      Min memory page size.
      See Also:
        Constant Field Values

    - #### DFLT_DATA_REG_DEFAULT_NAME

          public static final String DFLT_DATA_REG_DEFAULT_NAME

      This name is assigned to default Dataregion if no user-defined default MemPlc is specified
      See Also:
        Constant Field Values

    - #### DFLT_CHECKPOINT_FREQ

          public static final int DFLT_CHECKPOINT_FREQ

      See Also:
        Constant Field Values

    - #### DFLT_LOCK_WAIT_TIME

          public static final int DFLT_LOCK_WAIT_TIME

      Lock default wait time, 10 sec.
      See Also:
        Constant Field Values

    - #### DFLT_METRICS_ENABLED

          @Deprecated
          public static final boolean DFLT_METRICS_ENABLED

      Deprecated.
      Will be removed in upcoming releases.
      See Also:
        Constant Field Values

    - #### DFLT_SUB_INTERVALS

          public static final int DFLT_SUB_INTERVALS

      Default amount of sub intervals to calculate rate-based metric.
      See Also:
        Constant Field Values

    - #### DFLT_RATE_TIME_INTERVAL_MILLIS

          public static final int DFLT_RATE_TIME_INTERVAL_MILLIS

      Default length of interval over which rate-based metric is calculated.
      See Also:
        Constant Field Values

    - #### DFLT_CHECKPOINT_THREADS

          public static final int DFLT_CHECKPOINT_THREADS

      Default number of checkpoint threads.
      See Also:
        Constant Field Values

    - #### DFLT_CHECKPOINT_WRITE_ORDER

          public static final CheckpointWriteOrder DFLT_CHECKPOINT_WRITE_ORDER

      Default checkpoint write order.

    - #### DFLT_WAL_HISTORY_SIZE

          public static final int DFLT_WAL_HISTORY_SIZE

      Default number of checkpoints to be kept in WAL after checkpoint is finished
      See Also:
        Constant Field Values

    - #### DFLT_WAL_ARCHIVE_MAX_SIZE

          public static final long DFLT_WAL_ARCHIVE_MAX_SIZE

      Default max size of WAL archive files, in bytes.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_SEGMENTS

          public static final int DFLT_WAL_SEGMENTS

      See Also:
        Constant Field Values

    - #### DFLT_WAL_SEGMENT_SIZE

          public static final int DFLT_WAL_SEGMENT_SIZE

      Default WAL file segment size, 64MBytes
      See Also:
        Constant Field Values

    - #### DFLT_WAL_MODE

          public static final WALMode DFLT_WAL_MODE

      Default wal mode.

    - #### DFLT_TLB_SIZE

          public static final int DFLT_TLB_SIZE

      Default thread local buffer size.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_BUFF_SIZE

          public static final int DFLT_WAL_BUFF_SIZE

      Default thread local buffer size.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_FLUSH_FREQ

          public static final int DFLT_WAL_FLUSH_FREQ

      Default Wal flush frequency.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_FSYNC_DELAY

          public static final int DFLT_WAL_FSYNC_DELAY

      Default wal fsync delay.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_RECORD_ITERATOR_BUFFER_SIZE

          public static final int DFLT_WAL_RECORD_ITERATOR_BUFFER_SIZE

      Default wal record iterator buffer size.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_ALWAYS_WRITE_FULL_PAGES

          public static final boolean DFLT_WAL_ALWAYS_WRITE_FULL_PAGES

      Default wal always write full pages.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_PATH

          public static final String DFLT_WAL_PATH

      Default wal directory.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_ARCHIVE_PATH

          public static final String DFLT_WAL_ARCHIVE_PATH

      Default wal archive directory.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_CDC_PATH

          public static final String DFLT_WAL_CDC_PATH

      Default change data capture directory.
      See Also:
        Constant Field Values

    - #### DFLT_CDC_WAL_DIRECTORY_MAX_SIZE

          public static final long DFLT_CDC_WAL_DIRECTORY_MAX_SIZE

      Default change data capture directory maximum size.
      See Also:
        Constant Field Values

    - #### DFLT_WRITE_THROTTLING_ENABLED

          public static final boolean DFLT_WRITE_THROTTLING_ENABLED

      Default write throttling enabled.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_COMPACTION_ENABLED

          public static final boolean DFLT_WAL_COMPACTION_ENABLED

      Default wal compaction enabled.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_COMPACTION_LEVEL

          public static final int DFLT_WAL_COMPACTION_LEVEL

      Default wal compaction level.
      See Also:
        Constant Field Values

    - #### DFLT_DEFRAGMENTATION_THREAD_POOL_SIZE

          public static final int DFLT_DEFRAGMENTATION_THREAD_POOL_SIZE

      Default defragmentation thread pool size.
      See Also:
        Constant Field Values

    - #### DFLT_WAL_PAGE_COMPRESSION

          public static final DiskPageCompression DFLT_WAL_PAGE_COMPRESSION

      Default compression algorithm for WAL page snapshot records.

    - #### DFLT_USE_ASYNC_FILE_IO_FACTORY

          public static final boolean DFLT_USE_ASYNC_FILE_IO_FACTORY

      See Also:
        `IgniteSystemProperties.IGNITE_USE_ASYNC_FILE_IO_FACTORY`, Constant Field Values

    - #### HALF_MAX_WAL_ARCHIVE_SIZE

          public static final long HALF_MAX_WAL_ARCHIVE_SIZE

      Value used to indicate the use of half of the `getMaxWalArchiveSize()`.
      See Also:
        Constant Field Values

    - #### DFLT_WRITE_RECOVERY_DATA_ON_CP

          public static final boolean DFLT_WRITE_RECOVERY_DATA_ON_CP

      Default value for `writeRecoveryDataOnCheckpoint` property.
      See Also:
        Constant Field Values

    - #### DFLT_CP_RECOVERY_DATA_COMRESSION

          public static final DiskPageCompression DFLT_CP_RECOVERY_DATA_COMRESSION

      Default compression algorithm for checkpoint recovery data.

  - ### Constructor Detail

    - #### DataStorageConfiguration

          public DataStorageConfiguration()

      Creates valid durable memory configuration with all default values.

  - ### Method Detail

    - #### getSystemRegionInitialSize

          @Deprecated
          public long getSystemRegionInitialSize()

      Deprecated.
      use `SystemDataRegionConfiguration.getInitialSize()`.
      Initial size of a data region reserved for system cache.
      Returns:
        Size in bytes.

    - #### setSystemRegionInitialSize

          @Deprecated
          public DataStorageConfiguration setSystemRegionInitialSize​(long sysRegionInitSize)

      Deprecated.
      use `SystemDataRegionConfiguration.setInitialSize(long)`.
      Sets initial size of a data region reserved for system cache.
      Parameters:
        `sysRegionInitSize` - Size in bytes.
      Returns:
        `this` for chaining.

    - #### getSystemRegionMaxSize

          @Deprecated
          public long getSystemRegionMaxSize()

      Deprecated.
      use `SystemDataRegionConfiguration.getMaxSize()`.
      Maximum data region size reserved for system cache.
      Returns:
        Size in bytes.

    - #### setSystemRegionMaxSize

          @Deprecated
          public DataStorageConfiguration setSystemRegionMaxSize​(long sysRegionMaxSize)

      Deprecated.
      use `SystemDataRegionConfiguration.setMaxSize(long)`.
      Sets maximum data region size reserved for system cache. The total size should not be less than 10 MB due to internal data structures overhead.
      Parameters:
        `sysRegionMaxSize` - Maximum size in bytes for system cache data region.
      Returns:
        `this` for chaining.

    - #### getPageSize

          public int getPageSize()

      The page memory consists of one or more expandable data regions defined by `DataRegionConfiguration`. Every data region is split on pages of fixed size that store actual cache entries.
      Returns:
        Page size in bytes.

    - #### setPageSize

          public DataStorageConfiguration setPageSize​(int pageSize)

      Changes the page size.
      Parameters:
        `pageSize` - Page size in bytes. Supported values are: `1024`, `2048`, `4096`, `8192` and `16384`. If value is not set (or zero), `DFLT_PAGE_SIZE` (`4096`) will be used.
      Returns:
        `this` for chaining.
      See Also:
        `MIN_PAGE_SIZE`, `MAX_PAGE_SIZE`

    - #### getDataRegionConfigurations

          public DataRegionConfiguration[] getDataRegionConfigurations()

      Gets an array of all data regions configured. Apache Ignite will instantiate a dedicated data region per region. An Apache Ignite cache can be mapped to a specific region with `CacheConfiguration.setDataRegionName(String)` method.
      Returns:
        Array of configured data regions.

    - #### setDataRegionConfigurations

          public DataStorageConfiguration setDataRegionConfigurations​(DataRegionConfiguration... dataRegionConfigurations)

      Sets data regions configurations.
      Parameters:
        `dataRegionConfigurations` - Data regions configurations.
      Returns:
        `this` for chaining.

    - #### getConcurrencyLevel

          public int getConcurrencyLevel()

      Returns the number of concurrent segments in Ignite internal page mapping tables. By default equals to the number of available CPUs.
      Returns:
        Mapping table concurrency level(always greater than 0).

    - #### setConcurrencyLevel

          public DataStorageConfiguration setConcurrencyLevel​(int concLvl)

      Sets the number of concurrent segments in Ignite internal page mapping tables. If value is not positive, the number of available CPUs will be used.
      Parameters:
        `concLvl` - Mapping table concurrency level.
      Returns:
        `this` for chaining.

    - #### getDefaultDataRegionConfiguration

          public DataRegionConfiguration getDefaultDataRegionConfiguration()

      Returns:
        Configuration of default data region. All cache groups will reside in this data region by default. For assigning a custom data region to cache group, use `CacheConfiguration.setDataRegionName(String)`.

    - #### setDefaultDataRegionConfiguration

          public DataStorageConfiguration setDefaultDataRegionConfiguration​(DataRegionConfiguration dfltDataRegConf)

      Overrides configuration of default data region which has been created automatically.
      Parameters:
        `dfltDataRegConf` - Default data region configuration.
      Returns:
        `this` for chaining.

    - #### getSystemDataRegionConfiguration

          public SystemDataRegionConfiguration getSystemDataRegionConfiguration()

      Configuration of system data region.
      Returns:
        Configuration of system data region.

    - #### setSystemDataRegionConfiguration

          public DataStorageConfiguration setSystemDataRegionConfiguration​(SystemDataRegionConfiguration sysDataRegConf)

      Overrides configuration of system data region which has been created automatically.
      Parameters:
        `sysDataRegConf` - System data region configuration.
      Returns:
        `this` for chaining.

    - #### getStoragePath

          public String getStoragePath()

      Returns:
        A path the root directory where the Persistent Store will persist data and indexes.

    - #### getExtraStoragePaths

          public String[] getExtraStoragePaths()

      Returns:
        Additional directories where index and partition files are stored.

    - #### getExtraSnapshotPaths

          public String[] getExtraSnapshotPaths()

      Returns:
        Additional directories for snapshots.

    - #### setStoragePath

          public DataStorageConfiguration setStoragePath​(String persistenceStorePath)

      Sets a path to the root directory where the Persistent Store will persist data and indexes. By default, the Persistent Store's files are located under Ignite work directory.
      Parameters:
        `persistenceStorePath` - Persistence store path.
      Returns:
        `this` for chaining.

    - #### setExtraStoragePaths

          public DataStorageConfiguration setExtraStoragePaths​(String... extraStoragePaths)

      Sets a paths to the root directories where the Persistent Store can persist data and indexes. By default, `getStoragePath()` used.
      Parameters:
        `extraStoragePaths` - Extra storage paths where persistent data can be stored.
      Returns:
        `this` for chaining.

    - #### setExtraSnapshotPaths

          public DataStorageConfiguration setExtraSnapshotPaths​(String... extraSnapshotPaths)

      Sets a paths to the root directories where the snapshot files stored. By default, `IgniteConfiguration.getSnapshotPath()` used. Length of `extraSnapshotPaths` must be equal to the length of `getExtraStoragePaths()`.
      Parameters:
        `extraSnapshotPaths` - Extra snapshot paths where snapshot files can be stored.
      Returns:
        `this` for chaining.

    - #### getCheckpointFrequency

          public long getCheckpointFrequency()

      Gets checkpoint frequency.
      Returns:
        Checkpoint frequency in milliseconds.

    - #### setCheckpointFrequency

          public DataStorageConfiguration setCheckpointFrequency​(long checkpointFreq)

      Sets the checkpoint frequency which is a minimal interval when the dirty pages will be written to the Persistent Store. Checkpoint will be triggered more frequently the lower the value you use. If value is not positive, `DFLT_CHECKPOINT_FREQ` will be used.
      Parameters:
        `checkpointFreq` - Checkpoint frequency in milliseconds.
      Returns:
        `this` for chaining.

    - #### getCheckpointThreads

          public int getCheckpointThreads()

      Gets a number of threads to use for the checkpoint purposes.
      Returns:
        Number of checkpoint threads.

    - #### setCheckpointThreads

          public DataStorageConfiguration setCheckpointThreads​(int checkpointThreads)

      Sets a number of threads to use for the checkpoint purposes.
      Parameters:
        `checkpointThreads` - Number of checkpoint threads. Four threads are used by default.
      Returns:
        `this` for chaining.

    - #### getLockWaitTime

          public long getLockWaitTime()

      Timeout in milliseconds to wait when acquiring persistence store lock file before failing the local node.
      Returns:
        Lock wait time in milliseconds.

    - #### setLockWaitTime

          public DataStorageConfiguration setLockWaitTime​(long lockWaitTime)

      Timeout in milliseconds to wait when acquiring persistence store lock file before failing the local node.
      Parameters:
        `lockWaitTime` - Lock wait time in milliseconds.
      Returns:
        `this` for chaining.

    - #### getWalHistorySize

          @Deprecated
          public int getWalHistorySize()

      Deprecated.
      Instead of walHistorySize use maxWalArchiveSize for manage of archive size.
      Gets a total number of checkpoints to keep in the WAL history.
      Returns:
        Number of checkpoints to keep in WAL after a checkpoint is finished.
      See Also:
        `getMaxWalArchiveSize()`

    - #### setWalHistorySize

          @Deprecated
          public DataStorageConfiguration setWalHistorySize​(int walHistSize)

      Deprecated.
      Instead of walHistorySize use maxWalArchiveSize for manage of archive size.
      Sets a total number of checkpoints to keep in the WAL history.
      Parameters:
        `walHistSize` - Number of checkpoints to keep after a checkpoint is finished.
      Returns:
        `this` for chaining.
      See Also:
        `setMaxWalArchiveSize(long)`

    - #### isWalHistorySizeParameterUsed

          public boolean isWalHistorySizeParameterUsed()

      If WalHistorySize was set by user will use this parameter for compatibility.
      Returns:
        `true` if use WalHistorySize for compatibility.

    - #### getMaxWalArchiveSize

          public long getMaxWalArchiveSize()

      Gets a max allowed size(in bytes) of WAL archives.
      Returns:
        max size(in bytes) of WAL archive directory(greater than 0, or `UNLIMITED_WAL_ARCHIVE` if WAL archive size is unlimited).

    - #### setMaxWalArchiveSize

          public DataStorageConfiguration setMaxWalArchiveSize​(long walArchiveMaxSize)

      Sets a max allowed size(in bytes) of WAL archives. If value is not positive or `UNLIMITED_WAL_ARCHIVE`, `DFLT_WAL_ARCHIVE_MAX_SIZE` will be used.
      Parameters:
        `walArchiveMaxSize` - max size(in bytes) of WAL archive directory.
      Returns:
        `this` for chaining.

    - #### getWalSegments

          public int getWalSegments()

      Gets a number of WAL segments to work with.
      Returns:
        Number of work WAL segments.

    - #### setWalSegments

          public DataStorageConfiguration setWalSegments​(int walSegments)

      Sets a number of WAL segments to work with. For performance reasons, the whole WAL is split into files of fixed length called segments.
      Parameters:
        `walSegments` - Number of WAL segments. Value must be greater than 1.
      Returns:
        `this` for chaining.

    - #### getWalSegmentSize

          public int getWalSegmentSize()

      Gets size(in bytes) of a WAL segment.
      Returns:
        WAL segment size(in bytes).

    - #### setWalSegmentSize

          public DataStorageConfiguration setWalSegmentSize​(int walSegmentSize)

      Sets size(in bytes) of a WAL segment. If value is not set (or zero), `DFLT_WAL_SEGMENT_SIZE` will be used.
      Parameters:
        `walSegmentSize` - WAL segment size(in bytes). Value must be between 512Kb and 2Gb.
      Returns:
        `This` for chaining.

    - #### getWalPath

          public String getWalPath()

      Gets a path to the directory where WAL is stored.
      Returns:
        WAL persistence path, absolute or relative to Ignite work directory.

    - #### setWalPath

          public DataStorageConfiguration setWalPath​(String walStorePath)

      Sets a path to the directory where WAL is stored. If this path is relative, it will be resolved relatively to Ignite work directory.
      Parameters:
        `walStorePath` - WAL persistence path, absolute or relative to Ignite work directory.
      Returns:
        `this` for chaining.

    - #### getWalArchivePath

          public String getWalArchivePath()

      Gets a path to the WAL archive directory.
      Returns:
        WAL archive directory.

    - #### setWalArchivePath

          public DataStorageConfiguration setWalArchivePath​(String walArchivePath)

      Sets a path for the WAL archive directory. Every WAL segment will be fully copied to this directory before it can be reused for WAL purposes.
      Parameters:
        `walArchivePath` - WAL archive directory.
      Returns:
        `this` for chaining.

    - #### getCdcWalPath

          public String getCdcWalPath()

      Gets a path to the CDC directory. If this path is relative, it will be resolved relatively to Ignite work directory.
      Returns:
        CDC directory.

    - #### setCdcWalPath

          public DataStorageConfiguration setCdcWalPath​(String cdcWalPath)

      Sets a path for the CDC directory. Hard link to every WAL Archive segment will be created in it for CDC processing purpose.
      Parameters:
        `cdcWalPath` - CDC directory.
      Returns:
        `this` for chaining.

    - #### getCdcWalDirectoryMaxSize

          public long getCdcWalDirectoryMaxSize()

      Sets the `CDC directory` maximum size in bytes.
      Returns:
        CDC directory maximum size in bytes.

    - #### setCdcWalDirectoryMaxSize

          public DataStorageConfiguration setCdcWalDirectoryMaxSize​(long cdcWalDirMaxSize)

      Sets the CDC directory maximum size in bytes. Zero or negative means no limit. Creation of segment CDC link will be skipped when the total size of CDC files in the `directory` exceeds the limit. The CDC application will log an error due to a gap in wal files sequence. Note that cache changes will be lost. Default is no limit.
      Parameters:
        `cdcWalDirMaxSize` - CDC directory maximum size in bytes.
      Returns:
        `this` for chaining.

    - #### isMetricsEnabled

          @Deprecated
          public boolean isMetricsEnabled()

      Deprecated.
      Will be removed in upcoming releases.
      Gets flag indicating whether persistence metrics collection is enabled. Default value is `DFLT_METRICS_ENABLED`.
      Returns:
        Metrics enabled flag.

    - #### setMetricsEnabled

          @Deprecated
          public DataStorageConfiguration setMetricsEnabled​(boolean metricsEnabled)

      Deprecated.
      Will be removed in upcoming releases.
      Sets flag indicating whether persistence metrics collection is enabled.
      Parameters:
        `metricsEnabled` - Metrics enabled flag.
      Returns:
        `this` for chaining.

    - #### isWriteThrottlingEnabled

          public boolean isWriteThrottlingEnabled()

      Returns:
        Flag indicating whether write throttling is enabled.

    - #### setWriteThrottlingEnabled

          public DataStorageConfiguration setWriteThrottlingEnabled​(boolean writeThrottlingEnabled)

      Sets flag indicating whether write throttling is enabled.
      Parameters:
        `writeThrottlingEnabled` - Write throttling enabled flag.
      Returns:
        `this` for chaining.

    - #### getMetricsRateTimeInterval

          @Deprecated
          public long getMetricsRateTimeInterval()

      Deprecated.
      Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.
      Gets the length of the time interval for rate-based metrics. This interval defines a window over which hits will be tracked. Default value is `DFLT_RATE_TIME_INTERVAL_MILLIS`.
      Returns:
        Time interval in milliseconds.

    - #### setMetricsRateTimeInterval

          @Deprecated
          public DataStorageConfiguration setMetricsRateTimeInterval​(long metricsRateTimeInterval)

      Deprecated.
      Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.
      Sets the length of the time interval for rate-based metrics. This interval defines a window over which hits will be tracked.
      Parameters:
        `metricsRateTimeInterval` - Time interval in milliseconds.
      Returns:
        `this` for chaining.

    - #### getMetricsSubIntervalCount

          @Deprecated
          public int getMetricsSubIntervalCount()

      Deprecated.
      Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.
      Gets the number of sub-intervals to split the `getMetricsRateTimeInterval()` into to track the update history. Default value is `DFLT_SUB_INTERVALS`.
      Returns:
        The number of sub-intervals for history tracking.

    - #### setMetricsSubIntervalCount

          @Deprecated
          public DataStorageConfiguration setMetricsSubIntervalCount​(int metricsSubIntervalCnt)

      Deprecated.
      Use `MetricsMxBean.configureHitRateMetric(String, long)` instead.
      Sets the number of sub-intervals to split the `getMetricsRateTimeInterval()` into to track the update history.
      Parameters:
        `metricsSubIntervalCnt` - The number of sub-intervals for history tracking.
      Returns:
        `this` for chaining.

    - #### getWalMode

          public WALMode getWalMode()

      Property that defines behavior of wal fsync. Different type provides different guarantees for consistency. See `WALMode` for details.
      Returns:
        WAL mode.

    - #### setWalMode

          public DataStorageConfiguration setWalMode​(WALMode walMode)

      Sets property that defines behavior of wal fsync. Different type provides different guarantees for consistency. See `WALMode` for details.
      Parameters:
        `walMode` - Wal mode.
      Returns:
        `this` for chaining.

    - #### getWalThreadLocalBufferSize

          public int getWalThreadLocalBufferSize()

      Property for size of thread local buffer. Each thread which write to wal have thread local buffer for serialize recode before write in wal.
      Returns:
        Thread local buffer size (in bytes).

    - #### setWalThreadLocalBufferSize

          public DataStorageConfiguration setWalThreadLocalBufferSize​(int walTlbSize)

      Sets size of thread local buffer. Each thread which write to wal have thread local buffer for serialize recode before write in wal.
      Parameters:
        `walTlbSize` - Thread local buffer size (in bytes).
      Returns:
        `this` for chaining.

    - #### getWalBufferSize

          public int getWalBufferSize()

      Property defines size(in bytes) of WAL buffer. Each WAL record will be serialized to this buffer before write in WAL file.
      Returns:
        WAL buffer size(in bytes).

    - #### setWalBufferSize

          public DataStorageConfiguration setWalBufferSize​(int walBuffSize)

      Property defines size(in bytes) of WAL buffer. If value isn't positive it calculation will be based on `getWalSegmentSize()`.
      Parameters:
        `walBuffSize` - WAL buffer size(in bytes).
      Returns:
        `this` for chaining.

    - #### getWalFlushFrequency

          public long getWalFlushFrequency()

      This property define how often WAL will be fsync-ed in `BACKGROUND` mode. Ignored for all other WAL modes.
      Returns:
        WAL flush frequency, in milliseconds.

    - #### setWalFlushFrequency

          public DataStorageConfiguration setWalFlushFrequency​(long walFlushFreq)

      This property define how often WAL will be fsync-ed in `BACKGROUND` mode. Ignored for all other WAL modes.
      Parameters:
        `walFlushFreq` - WAL flush frequency, in milliseconds.
      Returns:
        `this` for chaining.

    - #### getWalFsyncDelayNanos

          public long getWalFsyncDelayNanos()

      Returns:
        Property that allows to trade latency for throughput in `WALMode.FSYNC` mode. It limits minimum time interval between WAL fsyncs. First thread that initiates WAL fsync will wait for this number of nanoseconds, another threads will just wait fsync of first thread (similar to CyclicBarrier). Total throughput should increase under load as total WAL fsync rate will be limited.

    - #### setWalFsyncDelayNanos

          public DataStorageConfiguration setWalFsyncDelayNanos​(long walFsyncDelayNanos)

      Sets property that allows to trade latency for throughput in `WALMode.FSYNC` mode. It limits minimum time interval between WAL fsyncs. First thread that initiates WAL fsync will wait for this number of nanoseconds, another threads will just wait fsync of first thread (similar to CyclicBarrier). Total throughput should increase under load as total WAL fsync rate will be limited.
      Parameters:
        `walFsyncDelayNanos` - Wal fsync delay, in nanoseconds.
      Returns:
        `this` for chaining.

    - #### getWalRecordIteratorBufferSize

          public int getWalRecordIteratorBufferSize()

      Property define how many bytes iterator read from disk (for one reading), during go ahead wal.
      Returns:
        Record iterator buffer size.

    - #### setWalRecordIteratorBufferSize

          public DataStorageConfiguration setWalRecordIteratorBufferSize​(int walRecordIterBuffSize)

      Sets property defining how many bytes iterator read from disk (for one reading), during go ahead wal.
      Parameters:
        `walRecordIterBuffSize` - Wal record iterator buffer size.
      Returns:
        `this` for chaining.

    - #### isAlwaysWriteFullPages

          public boolean isAlwaysWriteFullPages()

      Returns:
        Flag that enforces writing full page to WAL on every change (instead of delta record). Can be used for debugging purposes: every version of page will be present in WAL. Note that WAL will take several times more space in this mode.

    - #### setAlwaysWriteFullPages

          public DataStorageConfiguration setAlwaysWriteFullPages​(boolean alwaysWriteFullPages)

      Sets flag that enforces writing full page to WAL on every change (instead of delta record). Can be used for debugging purposes: every version of page will be present in WAL. Note that WAL will take several times more space in this mode.
      Parameters:
        `alwaysWriteFullPages` - Always write full pages flag.
      Returns:
        `this` for chaining.

    - #### getFileIOFactory

          public org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory getFileIOFactory()

      Factory to provide implementation of FileIO interface which is used for data storage files read/write operations
      Returns:
        File I/O factory

    - #### setFileIOFactory

          public DataStorageConfiguration setFileIOFactory​(org.apache.ignite.internal.processors.cache.persistence.file.FileIOFactory fileIOFactory)

      Sets factory to provide implementation of FileIO interface which is used for data storage files read/write operations
      Parameters:
        `fileIOFactory` - File I/O factory
      Returns:
        `this` for chaining.

    - #### setWalAutoArchiveAfterInactivity

          public DataStorageConfiguration setWalAutoArchiveAfterInactivity​(long walAutoArchiveAfterInactivity)

      Note: setting this value with `WALMode.FSYNC` may generate file size overhead for WAL segments in case grid is used rarely.
      Parameters:
        `walAutoArchiveAfterInactivity` - time in millis to run auto archiving segment (even if incomplete) after last record logging.
        Positive value enables incomplete segment archiving after timeout (inactivity).
        Zero or negative value disables auto archiving.
      Returns:
        current configuration instance for chaining

    - #### getWalAutoArchiveAfterInactivity

          public long getWalAutoArchiveAfterInactivity()

      Returns:
        time in millis to run auto archiving WAL segment (even if incomplete) after last record log

    - #### setWalForceArchiveTimeout

          public DataStorageConfiguration setWalForceArchiveTimeout​(long walForceArchiveTimeout)

      Parameters:
        `walForceArchiveTimeout` - Time in millis after last data change logged to run segment auto archivation (even if incomplete).
        Positive value enables incomplete segment archivation after timeout.
        Zero or negative value disables forcefull auto archiving.
      Returns:
        current configuration instance for chaining.

    - #### getWalForceArchiveTimeout

          public long getWalForceArchiveTimeout()

      Returns:
        time interval (in milliseconds) after last log of data change for force archiving of incompletely WAL segment.

    - #### getCheckpointWriteOrder

          public CheckpointWriteOrder getCheckpointWriteOrder()

      This property defines order of writing pages to disk storage during checkpoint.
      Returns:
        Checkpoint write order.

    - #### setCheckpointWriteOrder

          public DataStorageConfiguration setCheckpointWriteOrder​(CheckpointWriteOrder checkpointWriteOrder)

      This property defines order of writing pages to disk storage during checkpoint.
      Parameters:
        `checkpointWriteOrder` - Checkpoint write order.
      Returns:
        `this` for chaining.

    - #### isWalCompactionEnabled

          public boolean isWalCompactionEnabled()

      Returns:
        Flag indicating whether WAL compaction is enabled.

    - #### setWalCompactionEnabled

          public DataStorageConfiguration setWalCompactionEnabled​(boolean walCompactionEnabled)

      Sets flag indicating whether WAL compaction is enabled.
      Parameters:
        `walCompactionEnabled` - Wal compaction enabled flag.
      Returns:
        `this` for chaining.

    - #### getWalCompactionLevel

          public int getWalCompactionLevel()

      Returns:
        ZIP level to WAL compaction.

    - #### setWalCompactionLevel

          public void setWalCompactionLevel​(int walCompactionLevel)

      Parameters:
        `walCompactionLevel` - New ZIP level to WAL compaction.

    - #### getCheckpointReadLockTimeout

          public Long getCheckpointReadLockTimeout()

      Returns timeout for checkpoint read lock acquisition.
      Returns:
        Returns timeout for checkpoint read lock acquisition in milliseconds.
      See Also:
        `setCheckpointReadLockTimeout(long)`

    - #### setCheckpointReadLockTimeout

          public DataStorageConfiguration setCheckpointReadLockTimeout​(long checkpointReadLockTimeout)

      Sets timeout for checkpoint read lock acquisition.

      When any thread cannot acquire checkpoint read lock in this time, then critical failure handler is being called.

      Parameters:
        `checkpointReadLockTimeout` - Timeout for checkpoint read lock acquisition in milliseconds.
      Returns:
        `this` for chaining.

    - #### getWalPageCompression

          public DiskPageCompression getWalPageCompression()

      Gets compression algorithm for WAL page snapshot records.
      Returns:
        Page compression algorithm.

    - #### setWalPageCompression

          public DataStorageConfiguration setWalPageCompression​(DiskPageCompression walPageCompression)

      Sets compression algorithm for WAL page snapshot records.
      Parameters:
        `walPageCompression` - Page compression algorithm.
      Returns:
        `this` for chaining.

    - #### getWalPageCompressionLevel

          public Integer getWalPageCompressionLevel()

      Gets `algorithm` specific WAL page compression level.
      Returns:
        WAL page snapshots compression level or `null` for default.

    - #### setWalPageCompressionLevel

          public DataStorageConfiguration setWalPageCompressionLevel​(Integer walPageCompressionLevel)

      Sets `algorithm` specific page compression level.
      Parameters:
        `walPageCompressionLevel` - Disk page compression level or `null` to use default. `Zstd`: from `-131072` to `22` (default `3`). `LZ4`: from `0` to `17` (default `0`).
      Returns:
        `this` for chaining.

    - #### getEncryptionConfiguration

          public EncryptionConfiguration getEncryptionConfiguration()

      Gets encryyption configuration.
      Returns:
        Encryption configuration.

    - #### setEncryptionConfiguration

          public DataStorageConfiguration setEncryptionConfiguration​(EncryptionConfiguration encCfg)

      Sets encryption configuration.
      Parameters:
        `encCfg` - Encryption configuration.
      Returns:
        `this` for chaining.

    - #### setDefaultWarmUpConfiguration

          public DataStorageConfiguration setDefaultWarmUpConfiguration​(@Nullable
                                                                        @Nullable WarmUpConfiguration dfltWarmUpCfg)

      Sets default warm-up configuration.
      Parameters:
        `dfltWarmUpCfg` - Default warm-up configuration. To assign a special warm-up configuration for a data region, use `DataRegionConfiguration.setWarmUpConfiguration(org.apache.ignite.configuration.WarmUpConfiguration)`.
      Returns:
        `this` for chaining.

    - #### getDefaultWarmUpConfiguration

          @Nullable
          public @Nullable WarmUpConfiguration getDefaultWarmUpConfiguration()

      Gets default warm-up configuration.
      Returns:
        Default warm-up configuration.

    - #### setDefragmentationThreadPoolSize

          public DataStorageConfiguration setDefragmentationThreadPoolSize​(int defragmentationThreadPoolSize)

      Sets maximum number of partitions which can be defragmented at the same time.
      Parameters:
        `defragmentationThreadPoolSize` - Maximum number of partitions which can be defragmented at the same time. Default is `DFLT_DEFRAGMENTATION_THREAD_POOL_SIZE`.
      Returns:
        `this` for chaining.

    - #### getDefragmentationThreadPoolSize

          public int getDefragmentationThreadPoolSize()

      Maximum number of partitions which can be defragmented at the same time.
      Returns:
        Thread pool size for defragmentation.

    - #### getMinWalArchiveSize

          public long getMinWalArchiveSize()

      Gets a min allowed size(in bytes) of WAL archives.
      Returns:
        min size(in bytes) of WAL archive directory(greater than 0, or `HALF_MAX_WAL_ARCHIVE_SIZE`).

    - #### setMinWalArchiveSize

          public DataStorageConfiguration setMinWalArchiveSize​(long walArchiveMinSize)

      Sets a min allowed size(in bytes) of WAL archives. If value is not positive, `HALF_MAX_WAL_ARCHIVE_SIZE` will be used.
      Parameters:
        `walArchiveMinSize` - min size(in bytes) of WAL archive directory.
      Returns:
        `this` for chaining.

    - #### getMemoryAllocator

          @Nullable
          public @Nullable MemoryAllocator getMemoryAllocator()

      Returns:
        Memory allocator instance.

    - #### setMemoryAllocator

          public DataStorageConfiguration setMemoryAllocator​(MemoryAllocator allocator)

      Sets default memory allocator for all memory regions. If not specified, default, based on `Unsafe` allocator will be used. Allocator can be overrided for data region using `DataRegionConfiguration.setMemoryAllocator(MemoryAllocator)`
      Parameters:
        `allocator` - Memory allocator instance.
      Returns:
        `this` for chaining.

    - #### isWriteRecoveryDataOnCheckpoint

          public boolean isWriteRecoveryDataOnCheckpoint()

      Returns:
        Flag defining mode for storing page recovery data. If `true`, recovery data will be written during checkpoint, if `false`, WAL physical records will be used to store recovery data.

    - #### setWriteRecoveryDataOnCheckpoint

          public DataStorageConfiguration setWriteRecoveryDataOnCheckpoint​(boolean writeRecoveryDataOnCheckpoint)

      Sets mode for storing page recovery data.
      Parameters:
        `writeRecoveryDataOnCheckpoint` - If `true`, page recovery data will be written during checkpoint, if `false`, WAL physical records will be used to store page recovery data. Default is `DFLT_WRITE_RECOVERY_DATA_ON_CP`.
      Returns:
        `this` for chaining.

    - #### getCheckpointRecoveryDataCompression

          public DiskPageCompression getCheckpointRecoveryDataCompression()

      Gets compression algorithm for checkpoint recovery data.
      Returns:
        Page compression algorithm.

    - #### setCheckpointRecoveryDataCompression

          public DataStorageConfiguration setCheckpointRecoveryDataCompression​(DiskPageCompression cpRecoveryDataCompression)

      Sets compression algorithm for checkpoint recovery data.
      Parameters:
        `cpRecoveryDataCompression` - Compression algorithm.
      Returns:
        `this` for chaining.

    - #### getCheckpointRecoveryDataCompressionLevel

          public Integer getCheckpointRecoveryDataCompressionLevel()

      Gets `getCheckpointRecoveryDataCompression()` algorithm specific compression level.
      Returns:
        Checkpoint recovery data compression level or `null` for default.

    - #### setCheckpointRecoveryDataCompressionLevel

          public DataStorageConfiguration setCheckpointRecoveryDataCompressionLevel​(Integer cpRecoveryDataCompressionLevel)

      Sets `setCheckpointRecoveryDataCompression(DiskPageCompression)` algorithm specific compression level.
      Parameters:
        `cpRecoveryDataCompressionLevel` - Checkpoint recovery data compression level or `null` to use default. `Zstd`: from `-131072` to `22` (default `3`). `LZ4`: from `0` to `17` (default `0`).
      Returns:
        `this` for chaining.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`