Class 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 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_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_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_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_BINARY_METADATA_PATH

        public static final String DFLT_BINARY_METADATA_PATH
        Default path (relative to working directory) of binary metadata folder
        See Also:
        Constant Field Values
      • DFLT_MARSHALLER_PATH

        public static final String DFLT_MARSHALLER_PATH
        Default path (relative to working directory) of marshaller mappings folder
        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.
    • Constructor Detail

      • DataStorageConfiguration

        public DataStorageConfiguration()
        Creates valid durable memory configuration with all default values.
    • Method Detail

      • setSystemRegionMaxSize

        @Deprecated
        public DataStorageConfiguration setSystemRegionMaxSize​(long sysRegionMaxSize)
        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.
      • 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.
      • 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.
      • 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.
      • setMetricsRateTimeInterval

        @Deprecated
        public DataStorageConfiguration setMetricsRateTimeInterval​(long metricsRateTimeInterval)
        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.
      • 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.
      • 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.