in iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java [255:1085]
public void loadProperties(TrimProperties properties) throws BadNodeUrlException, IOException {
conf.setClusterName(properties.getProperty(IoTDBConstant.CLUSTER_NAME, conf.getClusterName()));
conf.setRpcAddress(properties.getProperty(IoTDBConstant.DN_RPC_ADDRESS, conf.getRpcAddress()));
conf.setRpcThriftCompressionEnable(
Boolean.parseBoolean(
properties.getProperty(
"dn_rpc_thrift_compression_enable",
Boolean.toString(conf.isRpcThriftCompressionEnable()))));
conf.setRpcAdvancedCompressionEnable(
Boolean.parseBoolean(
properties.getProperty(
"dn_rpc_advanced_compression_enable",
Boolean.toString(conf.isRpcAdvancedCompressionEnable()))));
conf.setConnectionTimeoutInMS(
Integer.parseInt(
properties.getProperty(
"dn_connection_timeout_ms", String.valueOf(conf.getConnectionTimeoutInMS()))));
if (properties.getProperty("dn_max_connection_for_internal_service", null) != null) {
conf.setMaxClientNumForEachNode(
Integer.parseInt(properties.getProperty("dn_max_connection_for_internal_service")));
LOGGER.warn(
"The parameter dn_max_connection_for_internal_service is out of date. Please rename it to dn_max_client_count_for_each_node_in_client_manager.");
}
conf.setMaxClientNumForEachNode(
Integer.parseInt(
properties.getProperty(
"dn_max_client_count_for_each_node_in_client_manager",
String.valueOf(conf.getMaxClientNumForEachNode()))));
conf.setSelectorNumOfClientManager(
Integer.parseInt(
properties.getProperty(
"dn_selector_thread_count_of_client_manager",
String.valueOf(conf.getSelectorNumOfClientManager()))));
conf.setRpcPort(
Integer.parseInt(
properties.getProperty(
IoTDBConstant.DN_RPC_PORT, Integer.toString(conf.getRpcPort()))));
conf.setFlushProportion(
Double.parseDouble(
properties.getProperty(
"flush_proportion", Double.toString(conf.getFlushProportion()))));
conf.setWriteMemoryVariationReportProportion(
Double.parseDouble(
properties.getProperty(
"write_memory_variation_report_proportion",
Double.toString(conf.getWriteMemoryVariationReportProportion()))));
memoryConfig.init(properties);
String systemDir = properties.getProperty("dn_system_dir");
if (systemDir == null) {
systemDir = properties.getProperty("base_dir");
if (systemDir != null) {
systemDir = FilePathUtils.regularizePath(systemDir) + IoTDBConstant.SYSTEM_FOLDER_NAME;
} else {
systemDir = conf.getSystemDir();
}
}
conf.setSystemDir(systemDir);
conf.setSchemaDir(
FilePathUtils.regularizePath(conf.getSystemDir()) + IoTDBConstant.SCHEMA_FOLDER_NAME);
conf.setQueryDir(
FilePathUtils.regularizePath(conf.getSystemDir() + IoTDBConstant.QUERY_FOLDER_NAME));
String[] defaultTierDirs = new String[conf.getTierDataDirs().length];
for (int i = 0; i < defaultTierDirs.length; ++i) {
defaultTierDirs[i] = String.join(",", conf.getTierDataDirs()[i]);
}
conf.setTierDataDirs(
parseDataDirs(
properties.getProperty(
"dn_data_dirs", String.join(IoTDBConstant.TIER_SEPARATOR, defaultTierDirs))));
conf.setConsensusDir(properties.getProperty("dn_consensus_dir", conf.getConsensusDir()));
long forceMlogPeriodInMs =
Long.parseLong(
properties.getProperty(
"sync_mlog_period_in_ms", Long.toString(conf.getSyncMlogPeriodInMs())));
if (forceMlogPeriodInMs > 0) {
conf.setSyncMlogPeriodInMs(forceMlogPeriodInMs);
}
String oldMultiDirStrategyClassName = conf.getMultiDirStrategyClassName();
conf.setMultiDirStrategyClassName(
properties.getProperty("dn_multi_dir_strategy", conf.getMultiDirStrategyClassName()));
try {
conf.checkMultiDirStrategyClassName();
} catch (Exception e) {
conf.setMultiDirStrategyClassName(oldMultiDirStrategyClassName.trim());
throw e;
}
conf.setBatchSize(
Integer.parseInt(
properties.getProperty("batch_size", Integer.toString(conf.getBatchSize()))));
conf.setTvListSortAlgorithm(
TVListSortAlgorithm.valueOf(
properties.getProperty(
"tvlist_sort_algorithm", conf.getTvListSortAlgorithm().toString())));
conf.setTVListSortThreshold(
Integer.parseInt(
properties.getProperty(
"tvlist_sort_threshold", Integer.toString(conf.getTvListSortThreshold()))));
conf.setCheckPeriodWhenInsertBlocked(
Integer.parseInt(
properties.getProperty(
"check_period_when_insert_blocked",
Integer.toString(conf.getCheckPeriodWhenInsertBlocked()))));
conf.setMaxWaitingTimeWhenInsertBlocked(
Integer.parseInt(
properties.getProperty(
"max_waiting_time_when_insert_blocked",
Integer.toString(conf.getMaxWaitingTimeWhenInsertBlocked()))));
conf.setIoTaskQueueSizeForFlushing(
Integer.parseInt(
properties.getProperty(
"io_task_queue_size_for_flushing",
Integer.toString(conf.getIoTaskQueueSizeForFlushing()))));
boolean enableWALCompression =
Boolean.parseBoolean(properties.getProperty("enable_wal_compression", "true"));
conf.setWALCompressionAlgorithm(
enableWALCompression ? CompressionType.LZ4 : CompressionType.UNCOMPRESSED);
conf.setCompactionScheduleIntervalInMs(
Long.parseLong(
properties.getProperty(
"compaction_schedule_interval_in_ms",
Long.toString(conf.getCompactionScheduleIntervalInMs()))));
conf.setEnableAutoRepairCompaction(
Boolean.parseBoolean(
properties.getProperty(
"enable_auto_repair_compaction",
Boolean.toString(conf.isEnableAutoRepairCompaction()))));
conf.setEnableCrossSpaceCompaction(
Boolean.parseBoolean(
properties.getProperty(
"enable_cross_space_compaction",
Boolean.toString(conf.isEnableCrossSpaceCompaction()))));
conf.setEnableSeqSpaceCompaction(
Boolean.parseBoolean(
properties.getProperty(
"enable_seq_space_compaction",
Boolean.toString(conf.isEnableSeqSpaceCompaction()))));
conf.setEnableUnseqSpaceCompaction(
Boolean.parseBoolean(
properties.getProperty(
"enable_unseq_space_compaction",
Boolean.toString(conf.isEnableUnseqSpaceCompaction()))));
conf.setCrossCompactionSelector(
CrossCompactionSelector.getCrossCompactionSelector(
properties.getProperty(
"cross_selector", conf.getCrossCompactionSelector().toString())));
conf.setInnerSequenceCompactionSelector(
InnerSequenceCompactionSelector.getInnerSequenceCompactionSelector(
properties.getProperty(
"inner_seq_selector", conf.getInnerSequenceCompactionSelector().toString())));
conf.setInnerUnsequenceCompactionSelector(
InnerUnsequenceCompactionSelector.getInnerUnsequenceCompactionSelector(
properties.getProperty(
"inner_unseq_selector", conf.getInnerUnsequenceCompactionSelector().toString())));
conf.setInnerSeqCompactionPerformer(
InnerSeqCompactionPerformer.getInnerSeqCompactionPerformer(
properties.getProperty(
"inner_seq_performer", conf.getInnerSeqCompactionPerformer().toString())));
conf.setInnerUnseqCompactionPerformer(
InnerUnseqCompactionPerformer.getInnerUnseqCompactionPerformer(
properties.getProperty(
"inner_unseq_performer", conf.getInnerUnseqCompactionPerformer().toString())));
conf.setCrossCompactionPerformer(
CrossCompactionPerformer.getCrossCompactionPerformer(
properties.getProperty(
"cross_performer", conf.getCrossCompactionPerformer().toString())));
conf.setCompactionPriority(
CompactionPriority.valueOf(
properties.getProperty(
"compaction_priority", conf.getCompactionPriority().toString())));
int subtaskNum =
Integer.parseInt(
properties.getProperty(
"sub_compaction_thread_count", Integer.toString(conf.getSubCompactionTaskNum())));
subtaskNum = subtaskNum <= 0 ? 1 : subtaskNum;
conf.setSubCompactionTaskNum(subtaskNum);
int compactionScheduleThreadNum =
Integer.parseInt(
properties.getProperty(
"compaction_schedule_thread_num",
Integer.toString(conf.getCompactionScheduleThreadNum())));
compactionScheduleThreadNum =
compactionScheduleThreadNum <= 0 ? 1 : compactionScheduleThreadNum;
conf.setCompactionScheduleThreadNum(compactionScheduleThreadNum);
conf.setQueryTimeoutThreshold(
Long.parseLong(
properties.getProperty(
"query_timeout_threshold", Long.toString(conf.getQueryTimeoutThreshold()))));
conf.setSessionTimeoutThreshold(
Integer.parseInt(
properties.getProperty(
"dn_session_timeout_threshold",
Integer.toString(conf.getSessionTimeoutThreshold()))));
conf.setFlushThreadCount(
Integer.parseInt(
properties.getProperty(
"flush_thread_count", Integer.toString(conf.getFlushThreadCount()))));
if (conf.getFlushThreadCount() <= 0) {
conf.setFlushThreadCount(Runtime.getRuntime().availableProcessors());
}
// start: index parameter setting
conf.setIndexRootFolder(properties.getProperty("index_root_dir", conf.getIndexRootFolder()));
conf.setEnableIndex(
Boolean.parseBoolean(
properties.getProperty("enable_index", Boolean.toString(conf.isEnableIndex()))));
conf.setConcurrentIndexBuildThread(
Integer.parseInt(
properties.getProperty(
"concurrent_index_build_thread",
Integer.toString(conf.getConcurrentIndexBuildThread()))));
if (conf.getConcurrentIndexBuildThread() <= 0) {
conf.setConcurrentIndexBuildThread(Runtime.getRuntime().availableProcessors());
}
conf.setDefaultIndexWindowRange(
Integer.parseInt(
properties.getProperty(
"default_index_window_range",
Integer.toString(conf.getDefaultIndexWindowRange()))));
conf.setDegreeOfParallelism(
Integer.parseInt(
properties.getProperty(
"degree_of_query_parallelism", Integer.toString(conf.getDegreeOfParallelism()))));
if (conf.getDegreeOfParallelism() <= 0) {
conf.setDegreeOfParallelism(Runtime.getRuntime().availableProcessors() / 2);
}
conf.setMergeThresholdOfExplainAnalyze(
Integer.parseInt(
properties.getProperty(
"merge_threshold_of_explain_analyze",
Integer.toString(conf.getMergeThresholdOfExplainAnalyze()))));
conf.setModeMapSizeThreshold(
Integer.parseInt(
properties.getProperty(
"mode_map_size_threshold", Integer.toString(conf.getModeMapSizeThreshold()))));
if (conf.getModeMapSizeThreshold() <= 0) {
conf.setModeMapSizeThreshold(10000);
}
conf.setMaxAllowedConcurrentQueries(
Integer.parseInt(
properties.getProperty(
"max_allowed_concurrent_queries",
Integer.toString(conf.getMaxAllowedConcurrentQueries()))));
if (conf.getMaxAllowedConcurrentQueries() <= 0) {
conf.setMaxAllowedConcurrentQueries(1000);
}
conf.setmRemoteSchemaCacheSize(
Integer.parseInt(
properties.getProperty(
"remote_schema_cache_size", Integer.toString(conf.getmRemoteSchemaCacheSize()))));
conf.setLanguageVersion(properties.getProperty("language_version", conf.getLanguageVersion()));
if (properties.containsKey("chunk_buffer_pool_enable")) {
conf.setChunkBufferPoolEnable(
Boolean.parseBoolean(properties.getProperty("chunk_buffer_pool_enable").trim()));
}
conf.setMergeIntervalSec(
Long.parseLong(
properties.getProperty(
"merge_interval_sec", Long.toString(conf.getMergeIntervalSec()))));
int compactionThreadCount =
Integer.parseInt(
properties.getProperty(
"compaction_thread_count", Integer.toString(conf.getCompactionThreadCount())));
conf.setCompactionThreadCount(compactionThreadCount <= 0 ? 1 : compactionThreadCount);
int maxConcurrentAlignedSeriesInCompaction =
Integer.parseInt(
properties.getProperty(
"compaction_max_aligned_series_num_in_one_batch",
Integer.toString(conf.getCompactionMaxAlignedSeriesNumInOneBatch())));
conf.setCompactionMaxAlignedSeriesNumInOneBatch(
maxConcurrentAlignedSeriesInCompaction <= 0
? Integer.MAX_VALUE
: maxConcurrentAlignedSeriesInCompaction);
conf.setChunkMetadataSizeProportion(
Double.parseDouble(
properties.getProperty(
"chunk_metadata_size_proportion",
Double.toString(conf.getChunkMetadataSizeProportion()))));
conf.setTargetCompactionFileSize(
Long.parseLong(
properties.getProperty(
"target_compaction_file_size", Long.toString(conf.getTargetCompactionFileSize()))));
conf.setInnerCompactionTotalFileSizeThresholdInByte(
Long.parseLong(
properties.getProperty(
"inner_compaction_total_file_size_threshold",
Long.toString(conf.getInnerCompactionTotalFileSizeThresholdInByte()))));
conf.setInnerCompactionTotalFileNumThreshold(
Integer.parseInt(
properties.getProperty(
"inner_compaction_total_file_num_threshold",
Integer.toString(conf.getInnerCompactionTotalFileNumThreshold()))));
conf.setMaxLevelGapInInnerCompaction(
Integer.parseInt(
properties.getProperty(
"max_level_gap_in_inner_compaction",
Integer.toString(conf.getMaxLevelGapInInnerCompaction()))));
conf.setTargetChunkSize(
Long.parseLong(
properties.getProperty("target_chunk_size", Long.toString(conf.getTargetChunkSize()))));
conf.setTargetChunkPointNum(
Long.parseLong(
properties.getProperty(
"target_chunk_point_num", Long.toString(conf.getTargetChunkPointNum()))));
conf.setChunkPointNumLowerBoundInCompaction(
Long.parseLong(
properties.getProperty(
"chunk_point_num_lower_bound_in_compaction",
Long.toString(conf.getChunkPointNumLowerBoundInCompaction()))));
conf.setChunkSizeLowerBoundInCompaction(
Long.parseLong(
properties.getProperty(
"chunk_size_lower_bound_in_compaction",
Long.toString(conf.getChunkSizeLowerBoundInCompaction()))));
conf.setInnerCompactionCandidateFileNum(
Integer.parseInt(
properties.getProperty(
"inner_compaction_candidate_file_num",
Integer.toString(conf.getInnerCompactionCandidateFileNum()))));
conf.setFileLimitPerCrossTask(
Integer.parseInt(
properties.getProperty(
"max_cross_compaction_candidate_file_num",
Integer.toString(conf.getFileLimitPerCrossTask()))));
conf.setMaxCrossCompactionCandidateFileSize(
Long.parseLong(
properties.getProperty(
"max_cross_compaction_candidate_file_size",
Long.toString(conf.getMaxCrossCompactionCandidateFileSize()))));
conf.setMinCrossCompactionUnseqFileLevel(
Integer.parseInt(
properties.getProperty(
"min_cross_compaction_unseq_file_level",
Integer.toString(conf.getMinCrossCompactionUnseqFileLevel()))));
conf.setCompactionWriteThroughputMbPerSec(
Integer.parseInt(
properties.getProperty(
"compaction_write_throughput_mb_per_sec",
Integer.toString(conf.getCompactionWriteThroughputMbPerSec()))));
conf.setCompactionReadThroughputMbPerSec(
Integer.parseInt(
properties.getProperty(
"compaction_read_throughput_mb_per_sec",
Integer.toString(conf.getCompactionReadThroughputMbPerSec()))));
conf.setCompactionReadOperationPerSec(
Integer.parseInt(
properties.getProperty(
"compaction_read_operation_per_sec",
Integer.toString(conf.getCompactionReadOperationPerSec()))));
conf.setEnableTsFileValidation(
Boolean.parseBoolean(
properties.getProperty(
"enable_tsfile_validation", String.valueOf(conf.isEnableTsFileValidation()))));
conf.setCandidateCompactionTaskQueueSize(
Integer.parseInt(
properties.getProperty(
"candidate_compaction_task_queue_size",
Integer.toString(conf.getCandidateCompactionTaskQueueSize()))));
conf.setInnerCompactionTaskSelectionDiskRedundancy(
Double.parseDouble(
properties.getProperty(
"inner_compaction_task_selection_disk_redundancy",
Double.toString(conf.getInnerCompactionTaskSelectionDiskRedundancy()))));
conf.setInnerCompactionTaskSelectionModsFileThreshold(
Long.parseLong(
properties.getProperty(
"inner_compaction_task_selection_mods_file_threshold",
Long.toString(conf.getInnerCompactionTaskSelectionModsFileThreshold()))));
conf.setMaxExpiredTime(
Long.parseLong(
properties.getProperty("max_expired_time", Long.toString(conf.getMaxExpiredTime()))));
conf.setExpiredDataRatio(
Float.parseFloat(
properties.getProperty(
"expired_data_ratio", Float.toString(conf.getExpiredDataRatio()))));
conf.setEnablePartialInsert(
Boolean.parseBoolean(
properties.getProperty(
"enable_partial_insert", String.valueOf(conf.isEnablePartialInsert()))));
conf.setEnable13DataInsertAdapt(
Boolean.parseBoolean(
properties.getProperty(
"0.13_data_insert_adapt", String.valueOf(conf.isEnable13DataInsertAdapt()))));
int rpcSelectorThreadNum =
Integer.parseInt(
properties.getProperty(
"dn_rpc_selector_thread_count",
Integer.toString(conf.getRpcSelectorThreadCount())));
if (rpcSelectorThreadNum <= 0) {
rpcSelectorThreadNum = 1;
}
conf.setRpcSelectorThreadCount(rpcSelectorThreadNum);
int maxConcurrentClientNum =
Integer.parseInt(
properties.getProperty(
"dn_rpc_max_concurrent_client_num",
Integer.toString(conf.getRpcMaxConcurrentClientNum())));
if (maxConcurrentClientNum <= 0) {
maxConcurrentClientNum = 1000;
}
conf.setRpcMaxConcurrentClientNum(maxConcurrentClientNum);
boolean startUp = true;
loadAutoCreateSchemaProps(properties, startUp);
conf.setTsFileStorageFs(
properties.getProperty("tsfile_storage_fs", conf.getTsFileStorageFs().toString()));
conf.setEnableHDFS(
Boolean.parseBoolean(
properties.getProperty("enable_hdfs", String.valueOf(conf.isEnableHDFS()))));
conf.setCoreSitePath(properties.getProperty("core_site_path", conf.getCoreSitePath()));
conf.setHdfsSitePath(properties.getProperty("hdfs_site_path", conf.getHdfsSitePath()));
conf.setHdfsIp(
Optional.ofNullable(properties.getProperty("hdfs_ip", conf.getRawHDFSIp()))
.map(value -> value.split(","))
.orElse(new String[0]));
conf.setHdfsPort(properties.getProperty("hdfs_port", conf.getHdfsPort()));
conf.setDfsNameServices(properties.getProperty("dfs_nameservices", conf.getDfsNameServices()));
conf.setDfsHaNamenodes(
Optional.ofNullable(properties.getProperty("dfs_ha_namenodes", conf.getRawDfsHaNamenodes()))
.map(value -> value.split(","))
.orElse(new String[0]));
conf.setDfsHaAutomaticFailoverEnabled(
Boolean.parseBoolean(
properties.getProperty(
"dfs_ha_automatic_failover_enabled",
String.valueOf(conf.isDfsHaAutomaticFailoverEnabled()))));
conf.setDfsClientFailoverProxyProvider(
properties.getProperty(
"dfs_client_failover_proxy_provider", conf.getDfsClientFailoverProxyProvider()));
conf.setUseKerberos(
Boolean.parseBoolean(
properties.getProperty("hdfs_use_kerberos", String.valueOf(conf.isUseKerberos()))));
conf.setKerberosKeytabFilePath(
properties.getProperty("kerberos_keytab_file_path", conf.getKerberosKeytabFilePath()));
conf.setKerberosPrincipal(
properties.getProperty("kerberos_principal", conf.getKerberosPrincipal()));
// The default fill interval in LinearFill and PreviousFill
conf.setDefaultFillInterval(
Integer.parseInt(
properties.getProperty(
"default_fill_interval", String.valueOf(conf.getDefaultFillInterval()))));
conf.setTagAttributeFlushInterval(
Integer.parseInt(
properties.getProperty(
"tag_attribute_flush_interval",
String.valueOf(conf.getTagAttributeFlushInterval()))));
conf.setPrimitiveArraySize(
(Integer.parseInt(
properties.getProperty(
"primitive_array_size", String.valueOf(conf.getPrimitiveArraySize())))));
conf.setThriftMaxFrameSize(
Integer.parseInt(
properties.getProperty(
"dn_thrift_max_frame_size", String.valueOf(conf.getThriftMaxFrameSize()))));
if (conf.getThriftMaxFrameSize() < IoTDBConstant.LEFT_SIZE_IN_REQUEST * 2) {
conf.setThriftMaxFrameSize(IoTDBConstant.LEFT_SIZE_IN_REQUEST * 2);
}
conf.setThriftDefaultBufferSize(
Integer.parseInt(
properties.getProperty(
"dn_thrift_init_buffer_size", String.valueOf(conf.getThriftDefaultBufferSize()))));
conf.setSlowQueryThreshold(
Long.parseLong(
properties.getProperty(
"slow_query_threshold", String.valueOf(conf.getSlowQueryThreshold()))));
conf.setDataRegionNum(
Integer.parseInt(
properties.getProperty("data_region_num", String.valueOf(conf.getDataRegionNum()))));
conf.setRecoveryLogIntervalInMs(
Long.parseLong(
properties.getProperty(
"recovery_log_interval_in_ms", String.valueOf(conf.getRecoveryLogIntervalInMs()))));
conf.setEnableSeparateData(
Boolean.parseBoolean(
properties.getProperty(
"enable_separate_data", Boolean.toString(conf.isEnableSeparateData()))));
conf.setWindowEvaluationThreadCount(
Integer.parseInt(
properties.getProperty(
"window_evaluation_thread_count",
Integer.toString(conf.getWindowEvaluationThreadCount()))));
if (conf.getWindowEvaluationThreadCount() <= 0) {
conf.setWindowEvaluationThreadCount(Runtime.getRuntime().availableProcessors());
}
conf.setMaxPendingWindowEvaluationTasks(
Integer.parseInt(
properties.getProperty(
"max_pending_window_evaluation_tasks",
Integer.toString(conf.getMaxPendingWindowEvaluationTasks()))));
if (conf.getMaxPendingWindowEvaluationTasks() <= 0) {
conf.setMaxPendingWindowEvaluationTasks(64);
}
conf.setCachedMNodeSizeInPBTreeMode(
Integer.parseInt(
properties.getProperty(
"cached_mnode_size_in_pbtree_mode",
String.valueOf(conf.getCachedMNodeSizeInPBTreeMode()))));
conf.setMinimumSegmentInPBTree(
Short.parseShort(
properties.getProperty(
"minimum_pbtree_segment_in_bytes",
String.valueOf(conf.getMinimumSegmentInPBTree()))));
conf.setPageCacheSizeInPBTree(
Integer.parseInt(
properties.getProperty(
"page_cache_in_pbtree", String.valueOf(conf.getPageCacheSizeInPBTree()))));
conf.setPBTreeLogSize(
Integer.parseInt(
properties.getProperty("pbtree_log_size", String.valueOf(conf.getPBTreeLogSize()))));
conf.setMaxMeasurementNumOfInternalRequest(
Integer.parseInt(
properties.getProperty(
"max_measurement_num_of_internal_request",
String.valueOf(conf.getMaxMeasurementNumOfInternalRequest()))));
// mqtt
loadMqttProps(properties);
conf.setIntoOperationBufferSizeInByte(
Long.parseLong(
properties.getProperty(
"into_operation_buffer_size_in_byte",
String.valueOf(conf.getIntoOperationBufferSizeInByte()))));
conf.setSelectIntoInsertTabletPlanRowLimit(
Integer.parseInt(
properties.getProperty(
"select_into_insert_tablet_plan_row_limit",
String.valueOf(conf.getSelectIntoInsertTabletPlanRowLimit()))));
conf.setIntoOperationExecutionThreadCount(
Integer.parseInt(
properties.getProperty(
"into_operation_execution_thread_count",
String.valueOf(conf.getIntoOperationExecutionThreadCount()))));
if (conf.getIntoOperationExecutionThreadCount() <= 0) {
conf.setIntoOperationExecutionThreadCount(2);
}
conf.setExtPipeDir(properties.getProperty("ext_pipe_dir", conf.getExtPipeDir()));
// At the same time, set TSFileConfig
List<FSType> fsTypes = new ArrayList<>();
fsTypes.add(FSType.LOCAL);
if (Boolean.parseBoolean(
properties.getProperty("enable_hdfs", String.valueOf(conf.isEnableHDFS())))) {
fsTypes.add(FSType.HDFS);
}
TSFileDescriptor.getInstance().getConfig().setTSFileStorageFs(fsTypes.toArray(new FSType[0]));
TSFileDescriptor.getInstance()
.getConfig()
.setCoreSitePath(properties.getProperty("core_site_path", conf.getCoreSitePath()));
TSFileDescriptor.getInstance()
.getConfig()
.setHdfsSitePath(properties.getProperty("hdfs_site_path", conf.getHdfsSitePath()));
TSFileDescriptor.getInstance()
.getConfig()
.setHdfsIp(
Optional.ofNullable(properties.getProperty("hdfs_ip", conf.getRawHDFSIp()))
.map(value -> value.split(","))
.orElse(new String[0]));
TSFileDescriptor.getInstance()
.getConfig()
.setHdfsPort(properties.getProperty("hdfs_port", conf.getHdfsPort()));
TSFileDescriptor.getInstance()
.getConfig()
.setDfsNameServices(properties.getProperty("dfs_nameservices", conf.getDfsNameServices()));
TSFileDescriptor.getInstance()
.getConfig()
.setDfsHaNamenodes(
Optional.ofNullable(
properties.getProperty("dfs_ha_namenodes", conf.getRawDfsHaNamenodes()))
.map(value -> value.split(","))
.orElse(new String[0]));
TSFileDescriptor.getInstance()
.getConfig()
.setDfsHaAutomaticFailoverEnabled(
Boolean.parseBoolean(
properties.getProperty(
"dfs_ha_automatic_failover_enabled",
String.valueOf(conf.isDfsHaAutomaticFailoverEnabled()))));
TSFileDescriptor.getInstance()
.getConfig()
.setDfsClientFailoverProxyProvider(
properties.getProperty(
"dfs_client_failover_proxy_provider", conf.getDfsClientFailoverProxyProvider()));
TSFileDescriptor.getInstance()
.getConfig()
.setPatternMatchingThreshold(
Integer.parseInt(
properties.getProperty(
"pattern_matching_threshold",
String.valueOf(conf.getPatternMatchingThreshold()))));
TSFileDescriptor.getInstance()
.getConfig()
.setUseKerberos(
Boolean.parseBoolean(
properties.getProperty("hdfs_use_kerberos", String.valueOf(conf.isUseKerberos()))));
TSFileDescriptor.getInstance()
.getConfig()
.setKerberosKeytabFilePath(
properties.getProperty("kerberos_keytab_file_path", conf.getKerberosKeytabFilePath()));
TSFileDescriptor.getInstance()
.getConfig()
.setKerberosPrincipal(
properties.getProperty("kerberos_principal", conf.getKerberosPrincipal()));
TSFileDescriptor.getInstance().getConfig().setBatchSize(conf.getBatchSize());
conf.setCoordinatorReadExecutorSize(
Integer.parseInt(
properties.getProperty(
"coordinator_read_executor_size",
Integer.toString(conf.getCoordinatorReadExecutorSize()))));
conf.setCoordinatorWriteExecutorSize(
Integer.parseInt(
properties.getProperty(
"coordinator_write_executor_size",
Integer.toString(conf.getCoordinatorWriteExecutorSize()))));
// Commons
commonDescriptor.loadCommonProps(properties);
commonDescriptor.initCommonConfigDir(conf.getSystemDir());
loadWALProps(properties);
// Timed flush memtable
loadTimedService(properties);
// Set tsfile-format config
loadTsFileProps(properties);
// Make RPCTransportFactory taking effect.
ZeroCopyRpcTransportFactory.reInit();
DeepCopyRpcTransportFactory.reInit();
// UDF
loadUDFProps(properties);
// Thrift ssl
initThriftSSL(properties);
// Trigger
loadTriggerProps(properties);
// CQ
loadCQProps(properties);
// Load TsFile
loadLoadTsFileProps(properties);
// Pipe
loadPipeProps(properties);
// Cluster
loadClusterProps(properties);
// Shuffle
loadShuffleProps(properties);
// Author cache
loadAuthorCache(properties);
conf.setQuotaEnable(
Boolean.parseBoolean(
properties.getProperty("quota_enable", String.valueOf(conf.isQuotaEnable()))));
// The buffer for sort operator to calculate
conf.setSortBufferSize(
Long.parseLong(
properties.getProperty(
"sort_buffer_size_in_bytes", Long.toString(conf.getSortBufferSize()))));
// tmp filePath for sort operator
conf.setSortTmpDir(properties.getProperty("sort_tmp_dir", conf.getSortTmpDir()));
conf.setRateLimiterType(properties.getProperty("rate_limiter_type", conf.getRateLimiterType()));
conf.setDataNodeSchemaCacheEvictionPolicy(
properties.getProperty(
"datanode_schema_cache_eviction_policy", conf.getDataNodeSchemaCacheEvictionPolicy()));
conf.setDataNodeTableCacheSemaphorePermitNum(
Integer.parseInt(
properties.getProperty(
"datanode_table_cache_semaphore_permit_num",
String.valueOf(conf.getDataNodeTableCacheSemaphorePermitNum()))));
conf.setGeneralRegionAttributeSecurityServiceIntervalSeconds(
Long.parseLong(
properties.getProperty(
"general_region_attribute_security_service_interval_seconds",
String.valueOf(conf.getGeneralRegionAttributeSecurityServiceIntervalSeconds()))));
conf.setGeneralRegionAttributeSecurityServiceTimeoutSeconds(
Long.parseLong(
properties.getProperty(
"general_region_attribute_security_service_timeout_seconds",
String.valueOf(conf.getGeneralRegionAttributeSecurityServiceTimeoutSeconds()))));
conf.setGeneralRegionAttributeSecurityServiceFailureDurationSecondsToFetch(
Long.parseLong(
properties.getProperty(
"general_region_attribute_security_service_failure_duration_seconds_to_fetch",
String.valueOf(
conf
.getGeneralRegionAttributeSecurityServiceFailureDurationSecondsToFetch()))));
conf.setGeneralRegionAttributeSecurityServiceFailureTimesToFetch(
Integer.parseInt(
properties.getProperty(
"general_region_attribute_security_service_failure_times_to_fetch",
String.valueOf(
conf.getGeneralRegionAttributeSecurityServiceFailureTimesToFetch()))));
conf.setDetailContainerMinDegradeMemoryInBytes(
Long.parseLong(
properties.getProperty(
"detail_container_min_degrade_memory_in_bytes",
String.valueOf(conf.getDetailContainerMinDegradeMemoryInBytes()))));
loadIoTConsensusProps(properties);
loadIoTConsensusV2Props(properties);
// update query_sample_throughput_bytes_per_sec
loadQuerySampleThroughput(properties);
// update trusted_uri_pattern
loadTrustedUriPattern(properties);
}