in modules/frontend/app/configuration/generator/generator/ConfigurationGenerator.js [1634:1731]
static clusterDataStorageConfiguration(cluster, available, cfg = this.igniteConfigurationBean(cluster)) {
if (!available('2.3.0'))
return cfg;
const available2_4 = available('2.4.0');
const available2_7 = available('2.7.0');
const dataStorageCfg = cluster.dataStorageConfiguration;
const storageBean = new Bean('org.apache.ignite.configuration.DataStorageConfiguration', 'dataStorageCfg', dataStorageCfg, clusterDflts.dataStorageConfiguration);
storageBean.intProperty('pageSize')
.intProperty('concurrencyLevel')
.longProperty('systemRegionInitialSize')
.longProperty('systemRegionMaxSize');
const dfltDataRegionCfg = this.dataRegionConfiguration(_.get(dataStorageCfg, 'defaultDataRegionConfiguration'));
if (!dfltDataRegionCfg.isEmpty())
storageBean.beanProperty('defaultDataRegionConfiguration', dfltDataRegionCfg);
const dataRegionCfgs = [];
_.forEach(_.get(dataStorageCfg, 'dataRegionConfigurations'), (dataRegionCfg) => {
const plcBean = this.dataRegionConfiguration(dataRegionCfg);
if (plcBean.isEmpty())
return;
dataRegionCfgs.push(plcBean);
});
if (!_.isEmpty(dataRegionCfgs))
storageBean.varArgProperty('dataRegionConfigurations', 'dataRegionConfigurations', dataRegionCfgs, 'org.apache.ignite.configuration.DataRegionConfiguration');
storageBean.stringProperty('storagePath')
.longProperty('checkpointFrequency');
if (available2_7) {
storageBean
.longProperty('checkpointReadLockTimeout');
}
storageBean.intProperty('checkpointThreads')
.enumProperty('checkpointWriteOrder')
.enumProperty('walMode')
.stringProperty('walPath')
.stringProperty('walArchivePath');
if (available2_7) {
storageBean.longProperty('maxWalArchiveSize')
.intProperty('walCompactionLevel');
}
storageBean.longProperty('walAutoArchiveAfterInactivity')
.intProperty('walSegments')
.intProperty('walSegmentSize')
.intProperty('walHistorySize');
if (available2_4)
storageBean.intProperty('walBufferSize');
storageBean.longProperty('walFlushFrequency')
.longProperty('walFsyncDelayNanos')
.intProperty('walRecordIteratorBufferSize')
.longProperty('lockWaitTime')
.intProperty('walThreadLocalBufferSize')
.intProperty('metricsSubIntervalCount')
.longProperty('metricsRateTimeInterval')
.boolProperty('metricsEnabled')
.boolProperty('alwaysWriteFullPages')
.boolProperty('writeThrottlingEnabled');
if (available2_4)
storageBean.boolProperty('walCompactionEnabled');
const fileIOFactory = _.get(dataStorageCfg, 'fileIOFactory');
let factoryBean;
if (fileIOFactory === 'RANDOM')
factoryBean = new Bean('org.apache.ignite.internal.processors.cache.persistence.file.RandomAccessFileIOFactory', 'rndFileIoFactory', {});
else if (fileIOFactory === 'ASYNC')
factoryBean = new Bean('org.apache.ignite.internal.processors.cache.persistence.file.AsyncFileIOFactory', 'asyncFileIoFactory', {});
if (factoryBean)
storageBean.beanProperty('fileIOFactory', factoryBean);
if (_.get(dataStorageCfg, 'defaultDataRegionConfiguration.persistenceEnabled')
|| _.find(_.get(dataStorageCfg, 'dataRegionConfigurations'), (storeCfg) => storeCfg.persistenceEnabled))
cfg.boolProperty('authenticationEnabled');
if (storageBean.nonEmpty())
cfg.beanProperty('dataStorageConfiguration', storageBean);
return cfg;
}