• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

apache / iotdb / #10007

06 Sep 2023 06:15AM UTC coverage: 47.611% (+0.004%) from 47.607%
#10007

push

travis_ci

web-flow
[IOTDB-6139] Refine Ratis Properties (#11047)

63 of 63 new or added lines in 7 files covered. (100.0%)

80457 of 168990 relevant lines covered (47.61%)

0.48 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

78.06
/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one
3
 * or more contributor license agreements.  See the NOTICE file
4
 * distributed with this work for additional information
5
 * regarding copyright ownership.  The ASF licenses this file
6
 * to you under the Apache License, Version 2.0 (the
7
 * "License"); you may not use this file except in compliance
8
 * with the License.  You may obtain a copy of the License at
9
 *
10
 *     http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing,
13
 * software distributed under the License is distributed on an
14
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
 * KIND, either express or implied.  See the License for the
16
 * specific language governing permissions and limitations
17
 * under the License.
18
 */
19
package org.apache.iotdb.db.conf;
20

21
import org.apache.iotdb.common.rpc.thrift.TEndPoint;
22
import org.apache.iotdb.commons.client.property.ClientPoolProperty.DefaultProperty;
23
import org.apache.iotdb.commons.conf.CommonDescriptor;
24
import org.apache.iotdb.commons.conf.IoTDBConstant;
25
import org.apache.iotdb.commons.utils.FileUtils;
26
import org.apache.iotdb.commons.utils.TestOnly;
27
import org.apache.iotdb.consensus.ConsensusFactory;
28
import org.apache.iotdb.db.audit.AuditLogOperation;
29
import org.apache.iotdb.db.audit.AuditLogStorage;
30
import org.apache.iotdb.db.exception.LoadConfigurationException;
31
import org.apache.iotdb.db.protocol.thrift.impl.ClientRPCServiceImpl;
32
import org.apache.iotdb.db.storageengine.dataregion.compaction.constant.CompactionValidationLevel;
33
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.constant.CrossCompactionPerformer;
34
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.constant.InnerSeqCompactionPerformer;
35
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.constant.InnerUnseqCompactionPerformer;
36
import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.constant.CompactionPriority;
37
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.constant.CrossCompactionSelector;
38
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.constant.InnerSequenceCompactionSelector;
39
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.constant.InnerUnsequenceCompactionSelector;
40
import org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.TimeIndexLevel;
41
import org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALMode;
42
import org.apache.iotdb.db.utils.datastructure.TVListSortAlgorithm;
43
import org.apache.iotdb.metrics.metricsets.system.SystemMetrics;
44
import org.apache.iotdb.rpc.RpcTransportFactory;
45
import org.apache.iotdb.rpc.RpcUtils;
46
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
47
import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
48
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
49
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
50
import org.apache.iotdb.tsfile.fileSystem.FSType;
51
import org.apache.iotdb.tsfile.utils.FSUtils;
52

53
import org.slf4j.Logger;
54
import org.slf4j.LoggerFactory;
55

56
import java.io.File;
57
import java.io.IOException;
58
import java.lang.reflect.Field;
59
import java.util.ArrayList;
60
import java.util.Arrays;
61
import java.util.Collections;
62
import java.util.HashSet;
63
import java.util.List;
64
import java.util.Properties;
65
import java.util.concurrent.TimeUnit;
66
import java.util.regex.Pattern;
67

68
import static org.apache.iotdb.commons.conf.IoTDBConstant.OBJECT_STORAGE_DIR;
69
import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR;
70

71
public class IoTDBConfig {
72

73
  /* Names of Watermark methods */
74
  public static final String WATERMARK_GROUPED_LSB = "GroupBasedLSBMethod";
75
  public static final String CONFIG_NAME = "iotdb-datanode.properties";
76
  private static final Logger logger = LoggerFactory.getLogger(IoTDBConfig.class);
1✔
77
  private static final String MULTI_DIR_STRATEGY_PREFIX =
78
      "org.apache.iotdb.db.storageengine.rescon.disk.strategy.";
79
  private static final String[] CLUSTER_ALLOWED_MULTI_DIR_STRATEGIES =
1✔
80
      new String[] {"SequenceStrategy", "MaxDiskUsableSpaceFirstStrategy"};
81
  private static final String DEFAULT_MULTI_DIR_STRATEGY = "SequenceStrategy";
82

83
  private static final String STORAGE_GROUP_MATCHER = "([a-zA-Z0-9`_.\\-\\u2E80-\\u9FFF]+)";
84
  public static final Pattern STORAGE_GROUP_PATTERN = Pattern.compile(STORAGE_GROUP_MATCHER);
1✔
85

86
  // e.g., a31+/$%#&[]{}3e4, "a.b", 'a.b'
87
  private static final String NODE_NAME_MATCHER = "([^\n\t]+)";
88

89
  // e.g.,  .s1
90
  private static final String PARTIAL_NODE_MATCHER = "[" + PATH_SEPARATOR + "]" + NODE_NAME_MATCHER;
91

92
  private static final String NODE_MATCHER =
93
      "([" + PATH_SEPARATOR + "])?" + NODE_NAME_MATCHER + "(" + PARTIAL_NODE_MATCHER + ")*";
94

95
  public static final Pattern NODE_PATTERN = Pattern.compile(NODE_MATCHER);
1✔
96

97
  /** Whether to enable the mqtt service. */
98
  private boolean enableMQTTService = false;
1✔
99

100
  /** The mqtt service binding host. */
101
  private String mqttHost = "127.0.0.1";
1✔
102

103
  /** The mqtt service binding port. */
104
  private int mqttPort = 1883;
1✔
105

106
  /** The handler pool size for handing the mqtt messages. */
107
  private int mqttHandlerPoolSize = 1;
1✔
108

109
  /** The mqtt message payload formatter. */
110
  private String mqttPayloadFormatter = "json";
1✔
111

112
  /** Max mqtt message size. Unit: byte */
113
  private int mqttMaxMessageSize = 1048576;
1✔
114

115
  /** Rpc binding address. */
116
  private String rpcAddress = "0.0.0.0";
1✔
117

118
  /** whether to use thrift compression. */
119
  private boolean rpcThriftCompressionEnable = false;
1✔
120

121
  /** whether to use Snappy compression before sending data through the network */
122
  private boolean rpcAdvancedCompressionEnable = false;
1✔
123

124
  /** Port which the JDBC server listens to. */
125
  private int rpcPort = 6667;
1✔
126

127
  /** Rpc Selector thread num */
128
  private int rpcSelectorThreadCount = 1;
1✔
129

130
  /** Min concurrent client number */
131
  private int rpcMinConcurrentClientNum = Runtime.getRuntime().availableProcessors();
1✔
132

133
  /** Max concurrent client number */
134
  private int rpcMaxConcurrentClientNum = 65535;
1✔
135

136
  /** Memory allocated for the write process */
137
  private long allocateMemoryForStorageEngine = Runtime.getRuntime().maxMemory() * 3 / 10;
1✔
138

139
  /** Memory allocated for the read process */
140
  private long allocateMemoryForRead = Runtime.getRuntime().maxMemory() * 3 / 10;
1✔
141

142
  /** Memory allocated for the mtree */
143
  private long allocateMemoryForSchema = Runtime.getRuntime().maxMemory() / 10;
1✔
144

145
  /** Memory allocated for the consensus layer */
146
  private long allocateMemoryForConsensus = Runtime.getRuntime().maxMemory() / 10;
1✔
147

148
  /** Ratio of memory allocated for buffered arrays */
149
  private double bufferedArraysMemoryProportion = 0.6;
1✔
150

151
  /** Flush proportion for system */
152
  private double flushProportion = 0.4;
1✔
153

154
  /** Reject proportion for system */
155
  private double rejectProportion = 0.8;
1✔
156

157
  /** The proportion of write memory for memtable */
158
  private double writeProportionForMemtable = 0.76;
1✔
159

160
  /** The proportion of write memory for compaction */
161
  private double compactionProportion = 0.2;
1✔
162

163
  /** The proportion of write memory for loading TsFile */
164
  private double loadTsFileProportion = 0.125;
1✔
165

166
  private int maxLoadingTimeseriesNumber = 2000;
1✔
167

168
  /**
169
   * If memory cost of data region increased more than proportion of {@linkplain
170
   * IoTDBConfig#getAllocateMemoryForStorageEngine()}*{@linkplain
171
   * IoTDBConfig#getWriteProportionForMemtable()}, report to system.
172
   */
173
  private double writeMemoryVariationReportProportion = 0.001;
1✔
174

175
  /** When inserting rejected, waiting period to check system again. Unit: millisecond */
176
  private int checkPeriodWhenInsertBlocked = 50;
1✔
177

178
  /** When inserting rejected exceeds this, throw an exception. Unit: millisecond */
179
  private int maxWaitingTimeWhenInsertBlockedInMs = 10000;
1✔
180

181
  // region Write Ahead Log Configuration
182
  /** Write mode of wal */
183
  private volatile WALMode walMode = WALMode.ASYNC;
1✔
184

185
  /** Max number of wal nodes, each node corresponds to one wal directory */
186
  private int maxWalNodesNum = 0;
1✔
187

188
  /**
189
   * Duration a wal flush operation will wait before calling fsync in the async mode. Unit:
190
   * millisecond
191
   */
192
  private volatile long walAsyncModeFsyncDelayInMs = 1_000;
1✔
193

194
  /**
195
   * Duration a wal flush operation will wait before calling fsync in the sync mode. Unit:
196
   * millisecond
197
   */
198
  private volatile long walSyncModeFsyncDelayInMs = 3;
1✔
199

200
  /** Buffer size of each wal node. Unit: byte */
201
  private int walBufferSize = 32 * 1024 * 1024;
1✔
202

203
  /** Blocking queue capacity of each wal buffer */
204
  private int walBufferQueueCapacity = 500;
1✔
205

206
  /** Size threshold of each wal file. Unit: byte */
207
  private volatile long walFileSizeThresholdInByte = 30 * 1024 * 1024L;
1✔
208

209
  /** Size threshold of each checkpoint file. Unit: byte */
210
  private volatile long checkpointFileSizeThresholdInByte = 3 * 1024 * 1024L;
1✔
211

212
  /** Minimum ratio of effective information in wal files */
213
  private volatile double walMinEffectiveInfoRatio = 0.1;
1✔
214

215
  /**
216
   * MemTable size threshold for triggering MemTable snapshot in wal. When a memTable's size exceeds
217
   * this, wal can flush this memtable to disk, otherwise wal will snapshot this memtable in wal.
218
   * Unit: byte
219
   */
220
  private volatile long walMemTableSnapshotThreshold = 8 * 1024 * 1024L;
1✔
221

222
  /** MemTable's max snapshot number in wal file */
223
  private volatile int maxWalMemTableSnapshotNum = 1;
1✔
224

225
  /** The period when outdated wal files are periodically deleted. Unit: millisecond */
226
  private volatile long deleteWalFilesPeriodInMs = 20 * 1000L;
1✔
227
  // endregion
228

229
  /**
230
   * Size of log buffer for every MetaData operation. If the size of a MetaData operation plan is
231
   * larger than this parameter, then the MetaData operation plan will be rejected by SchemaRegion.
232
   * Unit: byte
233
   */
234
  private int mlogBufferSize = 1024 * 1024;
1✔
235

236
  /**
237
   * The cycle when metadata log is periodically forced to be written to disk(in milliseconds) If
238
   * set this parameter to 0 it means call channel.force(true) after every each operation
239
   */
240
  private long syncMlogPeriodInMs = 100;
1✔
241

242
  /**
243
   * The size of log buffer for every trigger management operation plan. If the size of a trigger
244
   * management operation plan is larger than this parameter, the trigger management operation plan
245
   * will be rejected by TriggerManager. Unit: byte
246
   */
247
  private int tlogBufferSize = 1024 * 1024;
1✔
248

249
  /** System directory, including version file for each database and metadata */
250
  private String systemDir =
1✔
251
      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.SYSTEM_FOLDER_NAME;
252

253
  /** Schema directory, including storage set of values. */
254
  private String schemaDir =
1✔
255
      IoTDBConstant.DEFAULT_BASE_DIR
256
          + File.separator
257
          + IoTDBConstant.SYSTEM_FOLDER_NAME
258
          + File.separator
259
          + IoTDBConstant.SCHEMA_FOLDER_NAME;
260

261
  /** Query directory, stores temporary files of query */
262
  private String queryDir =
1✔
263
      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.QUERY_FOLDER_NAME;
264

265
  /** External lib directory, stores user-uploaded JAR files */
266
  private String extDir = IoTDBConstant.EXT_FOLDER_NAME;
1✔
267

268
  /** External lib directory for UDF, stores user-uploaded JAR files */
269
  private String udfDir =
1✔
270
      IoTDBConstant.EXT_FOLDER_NAME + File.separator + IoTDBConstant.UDF_FOLDER_NAME;
271

272
  /** External temporary lib directory for storing downloaded udf JAR files */
273
  private String udfTemporaryLibDir = udfDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
1✔
274

275
  /** External lib directory for trigger, stores user-uploaded JAR files */
276
  private String triggerDir =
1✔
277
      IoTDBConstant.EXT_FOLDER_NAME + File.separator + IoTDBConstant.TRIGGER_FOLDER_NAME;
278

279
  /** External temporary lib directory for storing downloaded trigger JAR files */
280
  private String triggerTemporaryLibDir =
1✔
281
      triggerDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
282

283
  /** External lib directory for Pipe Plugin, stores user-defined JAR files */
284
  private String pipeDir =
1✔
285
      IoTDBConstant.EXT_FOLDER_NAME + File.separator + IoTDBConstant.PIPE_FOLDER_NAME;
286

287
  /** External temporary lib directory for storing downloaded pipe plugin JAR files */
288
  private String pipeTemporaryLibDir = pipeDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
1✔
289

290
  /** External lib directory for ext Pipe plugins, stores user-defined JAR files */
291
  private String extPipeDir =
1✔
292
      IoTDBConstant.EXT_FOLDER_NAME + File.separator + IoTDBConstant.EXT_PIPE_FOLDER_NAME;
293

294
  /** External lib directory for MQTT, stores user-uploaded JAR files */
295
  private String mqttDir =
1✔
296
      IoTDBConstant.EXT_FOLDER_NAME + File.separator + IoTDBConstant.MQTT_FOLDER_NAME;
297

298
  /** Tiered data directories. It can be settled as dataDirs = {{"data1"}, {"data2", "data3"}}; */
299
  private String[][] tierDataDirs = {
1✔
300
    {IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.DATA_FOLDER_NAME}
301
  };
302

303
  private String loadTsFileDir =
1✔
304
      tierDataDirs[0][0] + File.separator + IoTDBConstant.LOAD_TSFILE_FOLDER_NAME;
305

306
  /** Strategy of multiple directories. */
307
  private String multiDirStrategyClassName = null;
1✔
308

309
  private String ratisDataRegionSnapshotDir =
1✔
310
      IoTDBConstant.DEFAULT_BASE_DIR
311
          + File.separator
312
          + IoTDBConstant.DATA_FOLDER_NAME
313
          + File.separator
314
          + IoTDBConstant.SNAPSHOT_FOLDER_NAME;
315

316
  /** Consensus directory. */
317
  private String consensusDir = IoTDBConstant.DEFAULT_BASE_DIR + File.separator + "consensus";
1✔
318

319
  private String dataRegionConsensusDir = consensusDir + File.separator + "data_region";
1✔
320

321
  private String schemaRegionConsensusDir = consensusDir + File.separator + "schema_region";
1✔
322

323
  /** temp result directory for sortOperator */
324
  private String sortTmpDir =
1✔
325
      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
326

327
  /** Maximum MemTable number. Invalid when enableMemControl is true. */
328
  private int maxMemtableNumber = 0;
1✔
329

330
  /** The amount of data iterate each time in server */
331
  private int batchSize = 100000;
1✔
332

333
  /** How many threads can concurrently flush. When <= 0, use CPU core number. */
334
  private int flushThreadCount = Runtime.getRuntime().availableProcessors();
1✔
335

336
  /** How many threads can concurrently execute query statement. When <= 0, use CPU core number. */
337
  private int queryThreadCount = Runtime.getRuntime().availableProcessors();
1✔
338

339
  private int degreeOfParallelism = Math.max(1, Runtime.getRuntime().availableProcessors() / 2);
1✔
340

341
  private int modeMapSizeThreshold = 10000;
1✔
342

343
  /** How many queries can be concurrently executed. When <= 0, use 1000. */
344
  private int maxAllowedConcurrentQueries = 1000;
1✔
345

346
  /** How many threads can concurrently evaluate windows. When <= 0, use CPU core number. */
347
  private int windowEvaluationThreadCount = Runtime.getRuntime().availableProcessors();
1✔
348

349
  /**
350
   * Max number of window evaluation tasks that can be pending for execution. When <= 0, the value
351
   * is 64 by default.
352
   */
353
  private int maxPendingWindowEvaluationTasks = 64;
1✔
354

355
  /** Is the write mem control for writing enable. */
356
  private boolean enableMemControl = true;
1✔
357

358
  /** Is the write ahead log enable. */
359
  private boolean enableIndex = false;
1✔
360

361
  /** How many threads can concurrently build index. When <= 0, use CPU core number. */
362
  private int concurrentIndexBuildThread = Runtime.getRuntime().availableProcessors();
1✔
363

364
  /**
365
   * the index framework adopts sliding window model to preprocess the original tv list in the
366
   * subsequence matching task.
367
   */
368
  private int defaultIndexWindowRange = 10;
1✔
369

370
  /** index directory. */
371
  private String indexRootFolder = "data" + File.separator + "index";
1✔
372

373
  /** When a unSequence TsFile's file size (in byte) exceed this, the TsFile is forced closed. */
374
  private long unSeqTsFileSize = 0L;
1✔
375

376
  /** When a sequence TsFile's file size (in byte) exceed this, the TsFile is forced closed. */
377
  private long seqTsFileSize = 0L;
1✔
378

379
  /** When a memTable's size (in byte) exceeds this, the memtable is flushed to disk. Unit: byte */
380
  private long memtableSizeThreshold = 1024 * 1024 * 1024L;
1✔
381

382
  /** Whether to timed flush sequence tsfiles' memtables. */
383
  private boolean enableTimedFlushSeqMemtable = true;
1✔
384

385
  /**
386
   * If a memTable's created time is older than current time minus this, the memtable will be
387
   * flushed to disk.(only check sequence tsfiles' memtables) Unit: ms
388
   */
389
  private long seqMemtableFlushInterval = 3 * 60 * 60 * 1000L;
1✔
390

391
  /** The interval to check whether sequence memtables need flushing. Unit: ms */
392
  private long seqMemtableFlushCheckInterval = 10 * 60 * 1000L;
1✔
393

394
  /** Whether to timed flush unsequence tsfiles' memtables. */
395
  private boolean enableTimedFlushUnseqMemtable = true;
1✔
396

397
  /**
398
   * If a memTable's created time is older than current time minus this, the memtable will be
399
   * flushed to disk.(only check unsequence tsfiles' memtables) Unit: ms
400
   */
401
  private long unseqMemtableFlushInterval = 3 * 60 * 60 * 1000L;
1✔
402

403
  /** The interval to check whether unsequence memtables need flushing. Unit: ms */
404
  private long unseqMemtableFlushCheckInterval = 10 * 60 * 1000L;
1✔
405

406
  /** The sort algorithm used in TVList */
407
  private TVListSortAlgorithm tvListSortAlgorithm = TVListSortAlgorithm.TIM;
1✔
408

409
  /** When average series point number reaches this, flush the memtable to disk */
410
  private int avgSeriesPointNumberThreshold = 100000;
1✔
411

412
  /** Enable inner space compaction for sequence files */
413
  private boolean enableSeqSpaceCompaction = true;
1✔
414

415
  /** Enable inner space compaction for unsequence files */
416
  private boolean enableUnseqSpaceCompaction = true;
1✔
417

418
  /** Compact the unsequence files into the overlapped sequence files */
419
  private boolean enableCrossSpaceCompaction = true;
1✔
420

421
  /** Enable the service for MLNode */
422
  private boolean enableMLNodeService = false;
1✔
423

424
  /** The buffer for sort operation */
425
  private long sortBufferSize = 1024 * 1024L;
1✔
426

427
  /**
428
   * The strategy of inner space compaction task. There are just one inner space compaction strategy
429
   * SIZE_TIRED_COMPACTION:
430
   */
431
  private InnerSequenceCompactionSelector innerSequenceCompactionSelector =
1✔
432
      InnerSequenceCompactionSelector.SIZE_TIERED;
433

434
  private InnerSeqCompactionPerformer innerSeqCompactionPerformer =
1✔
435
      InnerSeqCompactionPerformer.READ_CHUNK;
436

437
  private InnerUnsequenceCompactionSelector innerUnsequenceCompactionSelector =
1✔
438
      InnerUnsequenceCompactionSelector.SIZE_TIERED;
439

440
  private InnerUnseqCompactionPerformer innerUnseqCompactionPerformer =
1✔
441
      InnerUnseqCompactionPerformer.FAST;
442

443
  /**
444
   * The strategy of cross space compaction task. There are just one cross space compaction strategy
445
   * SIZE_TIRED_COMPACTION:
446
   */
447
  private CrossCompactionSelector crossCompactionSelector = CrossCompactionSelector.REWRITE;
1✔
448

449
  private CrossCompactionPerformer crossCompactionPerformer = CrossCompactionPerformer.FAST;
1✔
450

451
  /**
452
   * The priority of compaction task execution. There are three priority strategy INNER_CROSS:
453
   * prioritize inner space compaction, reduce the number of files first CROSS INNER: prioritize
454
   * cross space compaction, eliminate the unsequence files first BALANCE: alternate two compaction
455
   * types
456
   */
457
  private CompactionPriority compactionPriority = CompactionPriority.BALANCE;
1✔
458

459
  /**
460
   * Enable compaction memory control or not. If true and estimated memory size of one compaction
461
   * task exceeds the threshold, system will block the compaction. It only works for cross space
462
   * compaction currently.
463
   */
464
  private boolean enableCompactionMemControl = true;
1✔
465

466
  private double chunkMetadataSizeProportion = 0.1;
1✔
467

468
  /** The target tsfile size in compaction, 2 GB by default */
469
  private long targetCompactionFileSize = 2147483648L;
1✔
470

471
  /** The target chunk size in compaction. */
472
  private long targetChunkSize = 1048576L;
1✔
473

474
  /** The target chunk point num in compaction. */
475
  private long targetChunkPointNum = 100000L;
1✔
476

477
  /**
478
   * If the chunk size is lower than this threshold, it will be deserialized into points, default is
479
   * 10 KB
480
   */
481
  private long chunkSizeLowerBoundInCompaction = 10240L;
1✔
482

483
  /**
484
   * If the chunk point num is lower than this threshold, it will be deserialized into points,
485
   * default is 1000
486
   */
487
  private long chunkPointNumLowerBoundInCompaction = 1000;
1✔
488

489
  /**
490
   * If compaction thread cannot acquire the write lock within this timeout, the compaction task
491
   * will be abort.
492
   */
493
  private long compactionAcquireWriteLockTimeout = 60_000L;
1✔
494

495
  /** The max candidate file num in one inner space compaction task */
496
  private int fileLimitPerInnerTask = 30;
1✔
497

498
  /** The max candidate file num in one cross space compaction task */
499
  private int fileLimitPerCrossTask = 500;
1✔
500

501
  /** The max candidate file num in cross space compaction */
502
  private int totalFileLimitForCrossTask = 5000;
1✔
503

504
  /** The max total size of candidate files in one cross space compaction task */
505
  private long maxCrossCompactionCandidateFileSize = 1024 * 1024 * 1024 * 5L;
1✔
506

507
  /**
508
   * Only the unseq files whose level of inner space compaction reaches this value can be selected
509
   * to participate in the cross space compaction.
510
   */
511
  private int minCrossCompactionUnseqFileLevel = 1;
1✔
512

513
  /** The interval of compaction task schedulation in each virtual database. The unit is ms. */
514
  private long compactionScheduleIntervalInMs = 60_000L;
1✔
515

516
  /** The interval of compaction task submission from queue in CompactionTaskMananger */
517
  private long compactionSubmissionIntervalInMs = 60_000L;
1✔
518

519
  /**
520
   * The number of sub compaction threads to be set up to perform compaction. Currently only works
521
   * for nonAligned data in cross space compaction and unseq inner space compaction.
522
   */
523
  private int subCompactionTaskNum = 4;
1✔
524

525
  private CompactionValidationLevel compactionValidationLevel = CompactionValidationLevel.NONE;
1✔
526

527
  /** The size of candidate compaction task queue. */
528
  private int candidateCompactionTaskQueueSize = 50;
1✔
529

530
  /** whether to cache meta data(ChunkMetaData and TsFileMetaData) or not. */
531
  private boolean metaDataCacheEnable = true;
1✔
532

533
  /** Memory allocated for bloomFilter cache in read process */
534
  private long allocateMemoryForBloomFilterCache = allocateMemoryForRead / 1001;
1✔
535

536
  /** Memory allocated for timeSeriesMetaData cache in read process */
537
  private long allocateMemoryForTimeSeriesMetaDataCache = allocateMemoryForRead * 200 / 1001;
1✔
538

539
  /** Memory allocated for chunk cache in read process */
540
  private long allocateMemoryForChunkCache = allocateMemoryForRead * 100 / 1001;
1✔
541

542
  /** Memory allocated for operators */
543
  private long allocateMemoryForCoordinator = allocateMemoryForRead * 50 / 1001;
1✔
544

545
  /** Memory allocated for operators */
546
  private long allocateMemoryForOperators = allocateMemoryForRead * 200 / 1001;
1✔
547

548
  /** Memory allocated for operators */
549
  private long allocateMemoryForDataExchange = allocateMemoryForRead * 200 / 1001;
1✔
550

551
  /** Max bytes of each FragmentInstance for DataExchange */
552
  private long maxBytesPerFragmentInstance = allocateMemoryForDataExchange / queryThreadCount;
1✔
553

554
  /** Memory allocated proportion for timeIndex */
555
  private long allocateMemoryForTimeIndex = allocateMemoryForRead * 200 / 1001;
1✔
556

557
  /** Memory allocated proportion for time partition info */
558
  private long allocateMemoryForTimePartitionInfo = allocateMemoryForStorageEngine * 8 / 10 / 20;
1✔
559

560
  /** Memory allocated proportion for wal pipe cache */
561
  private long allocateMemoryForWALPipeCache =
1✔
562
      Math.min(allocateMemoryForConsensus / 2, 3 * getWalFileSizeThresholdInByte());
1✔
563

564
  /**
565
   * If true, we will estimate each query's possible memory footprint before executing it and deny
566
   * it if its estimated memory exceeds current free memory
567
   */
568
  private boolean enableQueryMemoryEstimation = true;
1✔
569

570
  /** Cache size of {@code checkAndGetDataTypeCache}. */
571
  private int mRemoteSchemaCacheSize = 100000;
1✔
572

573
  /**
574
   * Set the language version when loading file including error information, default value is "EN"
575
   */
576
  private String languageVersion = "EN";
1✔
577

578
  /** Examining period of cache file reader : 100 seconds. Unit: millisecond */
579
  private long cacheFileReaderClearPeriod = 100000;
1✔
580

581
  /** the max executing time of query in ms. Unit: millisecond */
582
  private long queryTimeoutThreshold = 60000;
1✔
583

584
  /** the max time to live of a session in ms. Unit: millisecond */
585
  private int sessionTimeoutThreshold = 0;
1✔
586

587
  /** Replace implementation class of JDBC service */
588
  private String rpcImplClassName = ClientRPCServiceImpl.class.getName();
1✔
589

590
  /** indicate whether current mode is cluster */
591
  private boolean isClusterMode = false;
1✔
592

593
  /**
594
   * The cluster name that this DataNode joined in the cluster mode. The default value
595
   * "defaultCluster" will be changed after join cluster
596
   */
597
  private String clusterName = "defaultCluster";
1✔
598

599
  /**
600
   * The DataNodeId of this DataNode for cluster mode. The default value -1 will be changed after
601
   * join cluster
602
   */
603
  private int dataNodeId = -1;
1✔
604

605
  /** whether use chunkBufferPool. */
606
  private boolean chunkBufferPoolEnable = false;
1✔
607

608
  /** Switch of creating schema automatically */
609
  private boolean enableAutoCreateSchema = true;
1✔
610

611
  /** register time series as which type when receiving boolean string "true" or "false" */
612
  private TSDataType booleanStringInferType = TSDataType.BOOLEAN;
1✔
613

614
  /** register time series as which type when receiving an integer string "67" */
615
  private TSDataType integerStringInferType = TSDataType.FLOAT;
1✔
616

617
  /**
618
   * register time series as which type when receiving an integer string and using float may lose
619
   * precision num > 2 ^ 24
620
   */
621
  private TSDataType longStringInferType = TSDataType.DOUBLE;
1✔
622

623
  /** register time series as which type when receiving a floating number string "6.7" */
624
  private TSDataType floatingStringInferType = TSDataType.FLOAT;
1✔
625

626
  /**
627
   * register time series as which type when receiving the Literal NaN. Values can be DOUBLE, FLOAT
628
   * or TEXT
629
   */
630
  private TSDataType nanStringInferType = TSDataType.DOUBLE;
1✔
631

632
  /** Database level when creating schema automatically is enabled */
633
  private int defaultStorageGroupLevel = 1;
1✔
634

635
  /** BOOLEAN encoding when creating schema automatically is enabled */
636
  private TSEncoding defaultBooleanEncoding = TSEncoding.RLE;
1✔
637

638
  /** INT32 encoding when creating schema automatically is enabled */
639
  private TSEncoding defaultInt32Encoding = TSEncoding.RLE;
1✔
640

641
  /** INT64 encoding when creating schema automatically is enabled */
642
  private TSEncoding defaultInt64Encoding = TSEncoding.RLE;
1✔
643

644
  /** FLOAT encoding when creating schema automatically is enabled */
645
  private TSEncoding defaultFloatEncoding = TSEncoding.GORILLA;
1✔
646

647
  /** DOUBLE encoding when creating schema automatically is enabled */
648
  private TSEncoding defaultDoubleEncoding = TSEncoding.GORILLA;
1✔
649

650
  /** TEXT encoding when creating schema automatically is enabled */
651
  private TSEncoding defaultTextEncoding = TSEncoding.PLAIN;
1✔
652

653
  /** How many threads will be set up to perform settle tasks. */
654
  private int settleThreadNum = 1;
1✔
655

656
  /**
657
   * If one merge file selection runs for more than this time, it will be ended and its current
658
   * selection will be used as final selection. When < 0, it means time is unbounded. Unit:
659
   * millisecond
660
   */
661
  private long crossCompactionFileSelectionTimeBudget = 30 * 1000L;
1✔
662

663
  /**
664
   * A global merge will be performed each such interval, that is, each database will be merged (if
665
   * proper merge candidates can be found). Unit: second.
666
   */
667
  private long mergeIntervalSec = 0L;
1✔
668

669
  /** The limit of compaction merge can reach per second */
670
  private int compactionWriteThroughputMbPerSec = 16;
1✔
671

672
  /**
673
   * How many thread will be set up to perform compaction, 10 by default. Set to 1 when less than or
674
   * equal to 0.
675
   */
676
  private int compactionThreadCount = 10;
1✔
677

678
  /*
679
   * How many thread will be set up to perform continuous queries. When <= 0, use max(1, CPU core number / 2).
680
   */
681
  private int continuousQueryThreadNum =
1✔
682
      Math.max(1, Runtime.getRuntime().availableProcessors() / 2);
1✔
683

684
  /*
685
   * Minimum every interval to perform continuous query.
686
   * The every interval of continuous query instances should not be lower than this limit.
687
   */
688
  private long continuousQueryMinimumEveryInterval = 1000;
1✔
689

690
  /** How much memory may be used in ONE SELECT INTO operation (in Byte). */
691
  private long intoOperationBufferSizeInByte = 100 * 1024 * 1024L;
1✔
692

693
  /**
694
   * The maximum number of rows can be processed in insert-tablet-plan when executing select-into
695
   * statements.
696
   */
697
  private int selectIntoInsertTabletPlanRowLimit = 10000;
1✔
698

699
  /** The number of threads in the thread pool that execute insert-tablet tasks. */
700
  private int intoOperationExecutionThreadCount = 2;
1✔
701

702
  /** Default TSfile storage is in local file system */
703
  private FSType tsFileStorageFs = FSType.LOCAL;
1✔
704

705
  /** Enable hdfs or not */
706
  private boolean enableHDFS = false;
1✔
707

708
  /** Default core-site.xml file path is /etc/hadoop/conf/core-site.xml */
709
  private String coreSitePath = "/etc/hadoop/conf/core-site.xml";
1✔
710

711
  /** Default hdfs-site.xml file path is /etc/hadoop/conf/hdfs-site.xml */
712
  private String hdfsSitePath = "/etc/hadoop/conf/hdfs-site.xml";
1✔
713

714
  /** Default HDFS ip is localhost */
715
  private String hdfsIp = "localhost";
1✔
716

717
  /** Default HDFS port is 9000 */
718
  private String hdfsPort = "9000";
1✔
719

720
  /** Default DFS NameServices is hdfsnamespace */
721
  private String dfsNameServices = "hdfsnamespace";
1✔
722

723
  /** Default DFS HA name nodes are nn1 and nn2 */
724
  private String dfsHaNamenodes = "nn1,nn2";
1✔
725

726
  /** Default DFS HA automatic failover is enabled */
727
  private boolean dfsHaAutomaticFailoverEnabled = true;
1✔
728

729
  /**
730
   * Default DFS client failover proxy provider is
731
   * "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
732
   */
733
  private String dfsClientFailoverProxyProvider =
1✔
734
      "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider";
735

736
  /** whether use kerberos to authenticate hdfs */
737
  private boolean useKerberos = false;
1✔
738

739
  /** full path of kerberos keytab file */
740
  private String kerberosKeytabFilePath = "/path";
1✔
741

742
  /** kerberos principal */
743
  private String kerberosPrincipal = "your principal";
1✔
744

745
  /** the num of memtable in each database */
746
  private int concurrentWritingTimePartition = 1;
1✔
747

748
  /** the default fill interval in LinearFill and PreviousFill, -1 means infinite past time */
749
  private int defaultFillInterval = -1;
1✔
750

751
  /** The default value of primitive array size in array pool */
752
  private int primitiveArraySize = 64;
1✔
753

754
  /**
755
   * Level of TimeIndex, which records the start time and end time of TsFileResource. Currently,
756
   * DEVICE_TIME_INDEX and FILE_TIME_INDEX are supported, and could not be changed after first set.
757
   */
758
  private TimeIndexLevel timeIndexLevel = TimeIndexLevel.DEVICE_TIME_INDEX;
1✔
759

760
  // just for test
761
  // wait for 60 second by default.
762
  private int thriftServerAwaitTimeForStopService = 60;
1✔
763

764
  // Interval num of tag and attribute records when force flushing to disk
765
  private int tagAttributeFlushInterval = 1000;
1✔
766

767
  // In one insert (one device, one timestamp, multiple measurements),
768
  // if enable partial insert, one measurement failure will not impact other measurements
769
  private boolean enablePartialInsert = true;
1✔
770

771
  private boolean enable13DataInsertAdapt = false;
1✔
772

773
  /**
774
   * Used to estimate the memory usage of text fields in a UDF query. It is recommended to set this
775
   * value to be slightly larger than the average length of all text records.
776
   */
777
  private int udfInitialByteArrayLengthForMemoryControl = 48;
1✔
778

779
  /**
780
   * How much memory may be used in ONE UDF query (in MB).
781
   *
782
   * <p>The upper limit is 20% of allocated memory for read.
783
   *
784
   * <p>udfMemoryBudgetInMB = udfReaderMemoryBudgetInMB + udfTransformerMemoryBudgetInMB +
785
   * udfCollectorMemoryBudgetInMB
786
   */
787
  private float udfMemoryBudgetInMB = (float) Math.min(30.0f, 0.2 * allocateMemoryForRead);
1✔
788

789
  private float udfReaderMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
1✔
790

791
  private float udfTransformerMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
1✔
792

793
  private float udfCollectorMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
1✔
794

795
  // time in nanosecond precision when starting up
796
  private long startUpNanosecond = System.nanoTime();
1✔
797

798
  /** Unit: byte */
799
  private int thriftMaxFrameSize = 536870912;
1✔
800

801
  private int thriftDefaultBufferSize = RpcUtils.THRIFT_DEFAULT_BUF_CAPACITY;
1✔
802

803
  /** time cost(ms) threshold for slow query. Unit: millisecond */
804
  private long slowQueryThreshold = 30000;
1✔
805

806
  private int patternMatchingThreshold = 1000000;
1✔
807

808
  /**
809
   * whether enable the rpc service. This parameter has no a corresponding field in the
810
   * iotdb-common.properties
811
   */
812
  private boolean enableRpcService = true;
1✔
813

814
  /** the size of ioTaskQueue */
815
  private int ioTaskQueueSizeForFlushing = 10;
1✔
816

817
  /** the number of data regions per user-defined database */
818
  private int dataRegionNum = 1;
1✔
819

820
  /** the interval to log recover progress of each vsg when starting iotdb */
821
  private long recoveryLogIntervalInMs = 5_000L;
1✔
822

823
  private boolean enableDiscardOutOfOrderData = false;
1✔
824

825
  /** the method to transform device path to device id, can be 'Plain' or 'SHA256' */
826
  private String deviceIDTransformationMethod = "Plain";
1✔
827

828
  /**
829
   * whether create mapping file of id table. This file can map device id in tsfile to device path
830
   */
831
  private boolean enableIDTableLogFile = false;
1✔
832

833
  /** the memory used for metadata cache when using persistent schema */
834
  private int cachedMNodeSizeInPBTreeMode = -1;
1✔
835

836
  /** the minimum size (in bytes) of segment inside a pbtree file page */
837
  private short minimumSegmentInPBTree = 0;
1✔
838

839
  /** cache size for pages in one pbtree file */
840
  private int pageCacheSizeInPBTree = 1024;
1✔
841

842
  /** maximum number of logged pages before log erased */
843
  private int pbTreeLogSize = 16384;
1✔
844

845
  /**
846
   * Maximum number of measurement in one create timeseries plan node. If the number of measurement
847
   * in user request exceeds this limit, the request will be split.
848
   */
849
  private int maxMeasurementNumOfInternalRequest = 10000;
1✔
850

851
  /** Internal address for data node */
852
  private String internalAddress = "127.0.0.1";
1✔
853

854
  /** Internal port for coordinator */
855
  private int internalPort = 10730;
1✔
856

857
  /** Port for MLNode */
858
  private int mlNodePort = 10780;
1✔
859

860
  /** Internal port for dataRegion consensus protocol */
861
  private int dataRegionConsensusPort = 10760;
1✔
862

863
  /** Internal port for schemaRegion consensus protocol */
864
  private int schemaRegionConsensusPort = 10750;
1✔
865

866
  /** Ip and port of config nodes. */
867
  private List<TEndPoint> targetConfigNodeList =
1✔
868
      Collections.singletonList(new TEndPoint("127.0.0.1", 10710));
1✔
869

870
  /** The time of data node waiting for the next retry to join into the cluster */
871
  private long joinClusterRetryIntervalMs = TimeUnit.SECONDS.toMillis(5);
1✔
872

873
  /**
874
   * The consensus protocol class for data region. The Datanode should communicate with ConfigNode
875
   * on startup and set this variable so that the correct class name can be obtained later when the
876
   * data region consensus layer singleton is initialized
877
   */
878
  private String dataRegionConsensusProtocolClass = ConsensusFactory.RATIS_CONSENSUS;
1✔
879

880
  /**
881
   * The consensus protocol class for schema region. The Datanode should communicate with ConfigNode
882
   * on startup and set this variable so that the correct class name can be obtained later when the
883
   * schema region consensus layer singleton is initialized
884
   */
885
  private String schemaRegionConsensusProtocolClass = ConsensusFactory.RATIS_CONSENSUS;
1✔
886

887
  /**
888
   * The series partition executor class. The Datanode should communicate with ConfigNode on startup
889
   * and set this variable so that the correct class name can be obtained later when calculating the
890
   * series partition
891
   */
892
  private String seriesPartitionExecutorClass =
1✔
893
      "org.apache.iotdb.commons.partition.executor.hash.BKDRHashExecutor";
894

895
  /** The number of series partitions in a database */
896
  private int seriesPartitionSlotNum = 10000;
1✔
897

898
  /** Port that mpp data exchange thrift service listen to. */
899
  private int mppDataExchangePort = 10740;
1✔
900

901
  /** Core pool size of mpp data exchange. */
902
  private int mppDataExchangeCorePoolSize = 10;
1✔
903

904
  /** Max pool size of mpp data exchange. */
905
  private int mppDataExchangeMaxPoolSize = 10;
1✔
906

907
  /** Thread keep alive time in ms of mpp data exchange. */
908
  private int mppDataExchangeKeepAliveTimeInMs = 1000;
1✔
909

910
  /** Thrift socket and connection timeout between data node and config node. */
911
  private int connectionTimeoutInMS = (int) TimeUnit.SECONDS.toMillis(20);
1✔
912

913
  /**
914
   * ClientManager will have so many selector threads (TAsyncClientManager) to distribute to its
915
   * clients.
916
   */
917
  private int selectorNumOfClientManager =
1✔
918
      Runtime.getRuntime().availableProcessors() / 4 > 0
1✔
919
          ? Runtime.getRuntime().availableProcessors() / 4
×
920
          : 1;
1✔
921

922
  /**
923
   * The maximum number of clients that can be idle for a node in a clientManager. When the number
924
   * of idle clients on a node exceeds this number, newly returned clients will be released
925
   */
926
  private int coreClientNumForEachNode = DefaultProperty.CORE_CLIENT_NUM_FOR_EACH_NODE;
1✔
927

928
  /**
929
   * The maximum number of clients that can be allocated for a node in a clientManager. When the
930
   * number of the client to a single node exceeds this number, the thread for applying for a client
931
   * will be blocked for a while, then ClientManager will throw ClientManagerException if there are
932
   * no clients after the block time.
933
   */
934
  private int maxClientNumForEachNode = DefaultProperty.MAX_CLIENT_NUM_FOR_EACH_NODE;
1✔
935

936
  /**
937
   * Cache size of partition cache in {@link
938
   * org.apache.iotdb.db.queryengine.plan.analyze.ClusterPartitionFetcher}
939
   */
940
  private int partitionCacheSize = 1000;
1✔
941

942
  private int devicePathCacheSize = 500_000;
1✔
943

944
  /** Cache size of user and role */
945
  private int authorCacheSize = 100;
1✔
946

947
  /** Cache expire time of user and role */
948
  private int authorCacheExpireTime = 30;
1✔
949

950
  /** Number of queues per forwarding trigger */
951
  private int triggerForwardMaxQueueNumber = 8;
1✔
952
  /** The length of one of the queues per forwarding trigger */
953
  private int triggerForwardMaxSizePerQueue = 2000;
1✔
954

955
  /** Trigger forwarding data size per batch */
956
  private int triggerForwardBatchSize = 50;
1✔
957

958
  /** Trigger HTTP forward pool size */
959
  private int triggerForwardHTTPPoolSize = 200;
1✔
960

961
  /** Trigger HTTP forward pool max connection for per route */
962
  private int triggerForwardHTTPPOOLMaxPerRoute = 20;
1✔
963

964
  /** Trigger MQTT forward pool size */
965
  private int triggerForwardMQTTPoolSize = 4;
1✔
966

967
  /** How many times will we retry to find an instance of stateful trigger */
968
  private int retryNumToFindStatefulTrigger = 3;
1✔
969

970
  /** ThreadPool size for read operation in coordinator */
971
  private int coordinatorReadExecutorSize = 20;
1✔
972

973
  /** ThreadPool size for write operation in coordinator */
974
  private int coordinatorWriteExecutorSize = 50;
1✔
975

976
  private int[] schemaMemoryProportion = new int[] {5, 4, 1};
1✔
977

978
  /** Memory allocated for schemaRegion */
979
  private long allocateMemoryForSchemaRegion = allocateMemoryForSchema * 5 / 10;
1✔
980

981
  /** Memory allocated for SchemaCache */
982
  private long allocateMemoryForSchemaCache = allocateMemoryForSchema * 4 / 10;
1✔
983

984
  /** Memory allocated for PartitionCache */
985
  private long allocateMemoryForPartitionCache = allocateMemoryForSchema / 10;
1✔
986

987
  /** Policy of DataNodeSchemaCache eviction */
988
  private String dataNodeSchemaCacheEvictionPolicy = "FIFO";
1✔
989

990
  private String readConsistencyLevel = "strong";
1✔
991

992
  /** Maximum execution time of a DriverTask */
993
  private int driverTaskExecutionTimeSliceInMs = 100;
1✔
994

995
  /** Maximum size of wal buffer used in IoTConsensus. Unit: byte */
996
  private long throttleThreshold = 50 * 1024 * 1024 * 1024L;
1✔
997

998
  /** Maximum wait time of write cache in IoTConsensus. Unit: ms */
999
  private long cacheWindowTimeInMs = 10 * 1000L;
1✔
1000

1001
  private long dataRatisConsensusLogAppenderBufferSizeMax = 16 * 1024 * 1024L;
1✔
1002
  private long schemaRatisConsensusLogAppenderBufferSizeMax = 16 * 1024 * 1024L;
1✔
1003

1004
  private long dataRatisConsensusSnapshotTriggerThreshold = 400000L;
1✔
1005
  private long schemaRatisConsensusSnapshotTriggerThreshold = 400000L;
1✔
1006

1007
  private boolean dataRatisConsensusLogUnsafeFlushEnable = false;
1✔
1008
  private boolean schemaRatisConsensusLogUnsafeFlushEnable = false;
1✔
1009

1010
  private int dataRatisConsensusLogForceSyncNum = 128;
1✔
1011
  private int schemaRatisConsensusLogForceSyncNum = 128;
1✔
1012

1013
  private long dataRatisConsensusLogSegmentSizeMax = 24 * 1024 * 1024L;
1✔
1014
  private long schemaRatisConsensusLogSegmentSizeMax = 24 * 1024 * 1024L;
1✔
1015

1016
  private long dataRatisConsensusGrpcFlowControlWindow = 4 * 1024 * 1024L;
1✔
1017
  private long schemaRatisConsensusGrpcFlowControlWindow = 4 * 1024 * 1024L;
1✔
1018

1019
  private int dataRatisConsensusGrpcLeaderOutstandingAppendsMax = 128;
1✔
1020

1021
  private int schemaRatisConsensusGrpcLeaderOutstandingAppendsMax = 128;
1✔
1022

1023
  private long dataRatisConsensusLeaderElectionTimeoutMinMs = 2000L;
1✔
1024
  private long schemaRatisConsensusLeaderElectionTimeoutMinMs = 2000L;
1✔
1025

1026
  private long dataRatisConsensusLeaderElectionTimeoutMaxMs = 4000L;
1✔
1027
  private long schemaRatisConsensusLeaderElectionTimeoutMaxMs = 4000L;
1✔
1028

1029
  /** CQ related */
1030
  private long cqMinEveryIntervalInMs = 1_000;
1✔
1031

1032
  private long dataRatisConsensusRequestTimeoutMs = 10000L;
1✔
1033
  private long schemaRatisConsensusRequestTimeoutMs = 10000L;
1✔
1034

1035
  private int dataRatisConsensusMaxRetryAttempts = 10;
1✔
1036
  private int schemaRatisConsensusMaxRetryAttempts = 10;
1✔
1037
  private long dataRatisConsensusInitialSleepTimeMs = 100L;
1✔
1038
  private long schemaRatisConsensusInitialSleepTimeMs = 100L;
1✔
1039
  private long dataRatisConsensusMaxSleepTimeMs = 10000L;
1✔
1040
  private long schemaRatisConsensusMaxSleepTimeMs = 10000L;
1✔
1041

1042
  private long dataRatisConsensusPreserveWhenPurge = 1000L;
1✔
1043
  private long schemaRatisConsensusPreserveWhenPurge = 1000L;
1✔
1044

1045
  private long ratisFirstElectionTimeoutMinMs = 50L;
1✔
1046
  private long ratisFirstElectionTimeoutMaxMs = 150L;
1✔
1047

1048
  private long dataRatisLogMax = 20L * 1024 * 1024 * 1024; // 20G
1✔
1049
  private long schemaRatisLogMax = 2L * 1024 * 1024 * 1024; // 2G
1✔
1050

1051
  /** whether to enable the audit log * */
1052
  private boolean enableAuditLog = false;
1✔
1053

1054
  /** This configuration parameter sets the level at which the time series limit is applied.* */
1055
  private String clusterSchemaLimitLevel = "timeseries";
1✔
1056

1057
  /** This configuration parameter sets the maximum number of schema allowed in the cluster.* */
1058
  private long clusterSchemaLimitThreshold = -1;
1✔
1059

1060
  /** Output location of audit logs * */
1061
  private List<AuditLogStorage> auditLogStorage =
1✔
1062
      Arrays.asList(AuditLogStorage.IOTDB, AuditLogStorage.LOGGER);
1✔
1063

1064
  /** Indicates the category collection of audit logs * */
1065
  private List<AuditLogOperation> auditLogOperation =
1✔
1066
      Arrays.asList(AuditLogOperation.DML, AuditLogOperation.DDL, AuditLogOperation.QUERY);
1✔
1067

1068
  /** whether the local write api records audit logs * */
1069
  private boolean enableAuditLogForNativeInsertApi = true;
1✔
1070

1071
  // customizedProperties, this should be empty by default.
1072
  private Properties customizedProperties = new Properties();
1✔
1073

1074
  // IoTConsensus Config
1075
  private int maxLogEntriesNumPerBatch = 1024;
1✔
1076
  private int maxSizePerBatch = 16 * 1024 * 1024;
1✔
1077
  private int maxPendingBatchesNum = 5;
1✔
1078
  private double maxMemoryRatioForQueue = 0.6;
1✔
1079

1080
  /** Pipe related */
1081
  private String pipeReceiverFileDir =
1✔
1082
      systemDir + File.separator + "pipe" + File.separator + "receiver";
1083

1084
  /** Resource control */
1085
  private boolean quotaEnable = false;
1✔
1086

1087
  /**
1088
   * 1. FixedIntervalRateLimiter : With this limiter resources will be refilled only after a fixed
1089
   * interval of time. 2. AverageIntervalRateLimiter : This limiter will refill resources at every
1090
   * TimeUnit/resources interval.
1091
   */
1092
  private String RateLimiterType = "FixedIntervalRateLimiter";
1✔
1093

1094
  IoTDBConfig() {}
1✔
1095

1096
  public int getMaxLogEntriesNumPerBatch() {
1097
    return maxLogEntriesNumPerBatch;
1✔
1098
  }
1099

1100
  public int getMaxSizePerBatch() {
1101
    return maxSizePerBatch;
1✔
1102
  }
1103

1104
  public int getMaxPendingBatchesNum() {
1105
    return maxPendingBatchesNum;
1✔
1106
  }
1107

1108
  public double getMaxMemoryRatioForQueue() {
1109
    return maxMemoryRatioForQueue;
1✔
1110
  }
1111

1112
  public void setMaxLogEntriesNumPerBatch(int maxLogEntriesNumPerBatch) {
1113
    this.maxLogEntriesNumPerBatch = maxLogEntriesNumPerBatch;
1✔
1114
  }
1✔
1115

1116
  public void setMaxSizePerBatch(int maxSizePerBatch) {
1117
    this.maxSizePerBatch = maxSizePerBatch;
1✔
1118
  }
1✔
1119

1120
  public void setMaxPendingBatchesNum(int maxPendingBatchesNum) {
1121
    this.maxPendingBatchesNum = maxPendingBatchesNum;
1✔
1122
  }
1✔
1123

1124
  public void setMaxMemoryRatioForQueue(double maxMemoryRatioForQueue) {
1125
    this.maxMemoryRatioForQueue = maxMemoryRatioForQueue;
1✔
1126
  }
1✔
1127

1128
  public float getUdfMemoryBudgetInMB() {
1129
    return udfMemoryBudgetInMB;
×
1130
  }
1131

1132
  public void setUdfMemoryBudgetInMB(float udfMemoryBudgetInMB) {
1133
    this.udfMemoryBudgetInMB = udfMemoryBudgetInMB;
×
1134
  }
×
1135

1136
  public float getUdfReaderMemoryBudgetInMB() {
1137
    return udfReaderMemoryBudgetInMB;
1✔
1138
  }
1139

1140
  public void setUdfReaderMemoryBudgetInMB(float udfReaderMemoryBudgetInMB) {
1141
    this.udfReaderMemoryBudgetInMB = udfReaderMemoryBudgetInMB;
×
1142
  }
×
1143

1144
  public float getUdfTransformerMemoryBudgetInMB() {
1145
    return udfTransformerMemoryBudgetInMB;
1✔
1146
  }
1147

1148
  public void setUdfTransformerMemoryBudgetInMB(float udfTransformerMemoryBudgetInMB) {
1149
    this.udfTransformerMemoryBudgetInMB = udfTransformerMemoryBudgetInMB;
×
1150
  }
×
1151

1152
  public float getUdfCollectorMemoryBudgetInMB() {
1153
    return udfCollectorMemoryBudgetInMB;
1✔
1154
  }
1155

1156
  public void setUdfCollectorMemoryBudgetInMB(float udfCollectorMemoryBudgetInMB) {
1157
    this.udfCollectorMemoryBudgetInMB = udfCollectorMemoryBudgetInMB;
×
1158
  }
×
1159

1160
  public int getUdfInitialByteArrayLengthForMemoryControl() {
1161
    return udfInitialByteArrayLengthForMemoryControl;
1✔
1162
  }
1163

1164
  public void setUdfInitialByteArrayLengthForMemoryControl(
1165
      int udfInitialByteArrayLengthForMemoryControl) {
1166
    this.udfInitialByteArrayLengthForMemoryControl = udfInitialByteArrayLengthForMemoryControl;
×
1167
  }
×
1168

1169
  public int getConcurrentWritingTimePartition() {
1170
    return concurrentWritingTimePartition;
1✔
1171
  }
1172

1173
  public void setConcurrentWritingTimePartition(int concurrentWritingTimePartition) {
1174
    this.concurrentWritingTimePartition = concurrentWritingTimePartition;
1✔
1175
  }
1✔
1176

1177
  public int getDefaultFillInterval() {
1178
    return defaultFillInterval;
1✔
1179
  }
1180

1181
  public void setDefaultFillInterval(int defaultFillInterval) {
1182
    this.defaultFillInterval = defaultFillInterval;
1✔
1183
  }
1✔
1184

1185
  public TimeIndexLevel getTimeIndexLevel() {
1186
    return timeIndexLevel;
1✔
1187
  }
1188

1189
  public void setTimeIndexLevel(String timeIndexLevel) {
1190
    this.timeIndexLevel = TimeIndexLevel.valueOf(timeIndexLevel);
1✔
1191
  }
1✔
1192

1193
  public void updatePath() {
1194
    formulateFolders();
1✔
1195
    confirmMultiDirStrategy();
1✔
1196
  }
1✔
1197

1198
  /** if the folders are relative paths, add IOTDB_DATA_HOME as the path prefix */
1199
  private void formulateFolders() {
1200
    systemDir = addDataHomeDir(systemDir);
1✔
1201
    schemaDir = addDataHomeDir(schemaDir);
1✔
1202
    loadTsFileDir = addDataHomeDir(loadTsFileDir);
1✔
1203
    consensusDir = addDataHomeDir(consensusDir);
1✔
1204
    dataRegionConsensusDir = addDataHomeDir(dataRegionConsensusDir);
1✔
1205
    ratisDataRegionSnapshotDir = addDataHomeDir(ratisDataRegionSnapshotDir);
1✔
1206
    schemaRegionConsensusDir = addDataHomeDir(schemaRegionConsensusDir);
1✔
1207
    indexRootFolder = addDataHomeDir(indexRootFolder);
1✔
1208
    extDir = addDataHomeDir(extDir);
1✔
1209
    udfDir = addDataHomeDir(udfDir);
1✔
1210
    udfTemporaryLibDir = addDataHomeDir(udfTemporaryLibDir);
1✔
1211
    triggerDir = addDataHomeDir(triggerDir);
1✔
1212
    triggerTemporaryLibDir = addDataHomeDir(triggerTemporaryLibDir);
1✔
1213
    pipeDir = addDataHomeDir(pipeDir);
1✔
1214
    pipeTemporaryLibDir = addDataHomeDir(pipeTemporaryLibDir);
1✔
1215
    pipeReceiverFileDir = addDataHomeDir(pipeReceiverFileDir);
1✔
1216
    mqttDir = addDataHomeDir(mqttDir);
1✔
1217
    extPipeDir = addDataHomeDir(extPipeDir);
1✔
1218
    queryDir = addDataHomeDir(queryDir);
1✔
1219
    sortTmpDir = addDataHomeDir(sortTmpDir);
1✔
1220
    formulateDataDirs(tierDataDirs);
1✔
1221
  }
1✔
1222

1223
  private void formulateDataDirs(String[][] tierDataDirs) {
1224
    for (int i = 0; i < tierDataDirs.length; i++) {
1✔
1225
      for (int j = 0; j < tierDataDirs[i].length; j++) {
1✔
1226
        if (tierDataDirs[i][j].equals(OBJECT_STORAGE_DIR)) {
1✔
1227
          // Notice: dataNodeId hasn't been initialized
1228
          tierDataDirs[i][j] = FSUtils.getOSDefaultPath(getObjectStorageBucket(), dataNodeId);
×
1229
        }
1230
        switch (FSUtils.getFSType(tierDataDirs[i][j])) {
1✔
1231
          case HDFS:
1232
            tierDataDirs[i][j] = getHdfsDir() + File.separatorChar + tierDataDirs[i][j];
×
1233
            break;
×
1234
          case LOCAL:
1235
            tierDataDirs[i][j] = addDataHomeDir(tierDataDirs[i][j]);
1✔
1236
            break;
1✔
1237
          case OBJECT_STORAGE:
1238
            tierDataDirs[i][j] = FSUtils.getOSDefaultPath(getObjectStorageBucket(), dataNodeId);
×
1239
            break;
×
1240
          default:
1241
            break;
1242
        }
1243
      }
1244
    }
1245
  }
1✔
1246

1247
  void reloadDataDirs(String[][] tierDataDirs) throws LoadConfigurationException {
1248
    // format data directories
1249
    formulateDataDirs(tierDataDirs);
×
1250
    // make sure old data directories not removed
1251
    for (int i = 0; i < this.tierDataDirs.length; ++i) {
×
1252
      HashSet<String> newDirs = new HashSet<>(Arrays.asList(tierDataDirs[i]));
×
1253
      for (String oldDir : this.tierDataDirs[i]) {
×
1254
        if (!newDirs.contains(oldDir)) {
×
1255
          String msg =
×
1256
              String.format("%s is removed from data_dirs parameter, please add it back.", oldDir);
×
1257
          logger.error(msg);
×
1258
          throw new LoadConfigurationException(msg);
×
1259
        }
1260
      }
1261
    }
1262
    this.tierDataDirs = tierDataDirs;
×
1263
    reloadSystemMetrics();
×
1264
  }
×
1265

1266
  void reloadSystemMetrics() {
1267
    ArrayList<String> diskDirs = new ArrayList<>();
×
1268
    diskDirs.add(IoTDBDescriptor.getInstance().getConfig().getSystemDir());
×
1269
    diskDirs.add(IoTDBDescriptor.getInstance().getConfig().getConsensusDir());
×
1270
    diskDirs.addAll(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDataDirs()));
×
1271
    diskDirs.addAll(Arrays.asList(CommonDescriptor.getInstance().getConfig().getWalDirs()));
×
1272
    diskDirs.add(CommonDescriptor.getInstance().getConfig().getSyncDir());
×
1273
    diskDirs.add(IoTDBDescriptor.getInstance().getConfig().getSortTmpDir());
×
1274
    SystemMetrics.getInstance().setDiskDirs(diskDirs);
×
1275
  }
×
1276

1277
  // if IOTDB_DATA_HOME is not set, then we keep dataHomeDir prefix being the same with IOTDB_HOME
1278
  // In this way, we can keep consistent with v0.13.0~2.
1279
  private String addDataHomeDir(String dir) {
1280
    String dataHomeDir = System.getProperty(IoTDBConstant.IOTDB_DATA_HOME, null);
1✔
1281
    if (dataHomeDir == null) {
1✔
1282
      dataHomeDir = System.getProperty(IoTDBConstant.IOTDB_HOME, null);
1✔
1283
    }
1284
    if (dataHomeDir == null) {
1✔
1285
      return dir;
1✔
1286
    }
1287

1288
    File dataHomeFile = new File(dataHomeDir);
×
1289
    try {
1290
      dataHomeDir = dataHomeFile.getCanonicalPath();
×
1291
    } catch (IOException e) {
×
1292
      logger.error("Fail to get canonical path of {}", dataHomeFile, e);
×
1293
    }
×
1294
    return FileUtils.addPrefix2FilePath(dataHomeDir, dir);
×
1295
  }
1296

1297
  void confirmMultiDirStrategy() {
1298
    if (getMultiDirStrategyClassName() == null) {
1✔
1299
      multiDirStrategyClassName = DEFAULT_MULTI_DIR_STRATEGY;
1✔
1300
    }
1301
    if (!getMultiDirStrategyClassName().contains(TsFileConstant.PATH_SEPARATOR)) {
1✔
1302
      multiDirStrategyClassName = MULTI_DIR_STRATEGY_PREFIX + multiDirStrategyClassName;
1✔
1303
    }
1304

1305
    try {
1306
      Class.forName(multiDirStrategyClassName);
1✔
1307
    } catch (ClassNotFoundException e) {
×
1308
      logger.warn(
×
1309
          "Cannot find given directory strategy {}, using the default value",
1310
          getMultiDirStrategyClassName(),
×
1311
          e);
1312
      setMultiDirStrategyClassName(MULTI_DIR_STRATEGY_PREFIX + DEFAULT_MULTI_DIR_STRATEGY);
×
1313
    }
1✔
1314
  }
1✔
1315

1316
  private String getHdfsDir() {
1317
    String[] hdfsIps = TSFileDescriptor.getInstance().getConfig().getHdfsIp();
×
1318
    String hdfsDir = "hdfs://";
×
1319
    if (hdfsIps.length > 1) {
×
1320
      hdfsDir += TSFileDescriptor.getInstance().getConfig().getDfsNameServices();
×
1321
    } else {
1322
      hdfsDir += hdfsIps[0] + ":" + TSFileDescriptor.getInstance().getConfig().getHdfsPort();
×
1323
    }
1324
    return hdfsDir;
×
1325
  }
1326

1327
  public String[] getDataDirs() {
1328
    return Arrays.stream(tierDataDirs).flatMap(Arrays::stream).toArray(String[]::new);
1✔
1329
  }
1330

1331
  public String[] getLocalDataDirs() {
1332
    return Arrays.stream(tierDataDirs)
1✔
1333
        .flatMap(Arrays::stream)
1✔
1334
        .filter(FSUtils::isLocal)
1✔
1335
        .toArray(String[]::new);
1✔
1336
  }
1337

1338
  public String[][] getTierDataDirs() {
1339
    return tierDataDirs;
1✔
1340
  }
1341

1342
  public void setTierDataDirs(String[][] tierDataDirs) {
1343
    formulateDataDirs(tierDataDirs);
1✔
1344
    this.tierDataDirs = tierDataDirs;
1✔
1345
    // TODO(szywilliam): rewrite the logic here when ratis supports complete snapshot semantic
1346
    setRatisDataRegionSnapshotDir(
1✔
1347
        tierDataDirs[0][0] + File.separator + IoTDBConstant.SNAPSHOT_FOLDER_NAME);
1348
    setLoadTsFileDir(tierDataDirs[0][0] + File.separator + IoTDBConstant.LOAD_TSFILE_FOLDER_NAME);
1✔
1349
  }
1✔
1350

1351
  public String getRpcAddress() {
1352
    return rpcAddress;
1✔
1353
  }
1354

1355
  public void setRpcAddress(String rpcAddress) {
1356
    this.rpcAddress = rpcAddress;
1✔
1357
  }
1✔
1358

1359
  public int getRpcPort() {
1360
    return rpcPort;
1✔
1361
  }
1362

1363
  public void setRpcPort(int rpcPort) {
1364
    this.rpcPort = rpcPort;
1✔
1365
  }
1✔
1366

1367
  public boolean isEnableDiscardOutOfOrderData() {
1368
    return enableDiscardOutOfOrderData;
1✔
1369
  }
1370

1371
  public void setEnableDiscardOutOfOrderData(boolean enableDiscardOutOfOrderData) {
1372
    this.enableDiscardOutOfOrderData = enableDiscardOutOfOrderData;
1✔
1373
  }
1✔
1374

1375
  public String getSystemDir() {
1376
    return systemDir;
1✔
1377
  }
1378

1379
  void setSystemDir(String systemDir) {
1380
    this.systemDir = systemDir;
1✔
1381
  }
1✔
1382

1383
  public String getLoadTsFileDir() {
1384
    return loadTsFileDir;
×
1385
  }
1386

1387
  public void setLoadTsFileDir(String loadTsFileDir) {
1388
    this.loadTsFileDir = loadTsFileDir;
1✔
1389
  }
1✔
1390

1391
  public String getSchemaDir() {
1392
    return schemaDir;
1✔
1393
  }
1394

1395
  public void setSchemaDir(String schemaDir) {
1396
    this.schemaDir = schemaDir;
1✔
1397
  }
1✔
1398

1399
  public String getQueryDir() {
1400
    return queryDir;
1✔
1401
  }
1402

1403
  void setQueryDir(String queryDir) {
1404
    this.queryDir = queryDir;
1✔
1405
  }
1✔
1406

1407
  public String getRatisDataRegionSnapshotDir() {
1408
    return ratisDataRegionSnapshotDir;
×
1409
  }
1410

1411
  public void setRatisDataRegionSnapshotDir(String ratisDataRegionSnapshotDir) {
1412
    this.ratisDataRegionSnapshotDir = ratisDataRegionSnapshotDir;
1✔
1413
  }
1✔
1414

1415
  public String getConsensusDir() {
1416
    return consensusDir;
1✔
1417
  }
1418

1419
  public void setConsensusDir(String consensusDir) {
1420
    this.consensusDir = consensusDir;
1✔
1421
    setDataRegionConsensusDir(consensusDir + File.separator + "data_region");
1✔
1422
    setSchemaRegionConsensusDir(consensusDir + File.separator + "schema_region");
1✔
1423
  }
1✔
1424

1425
  public String getDataRegionConsensusDir() {
1426
    return dataRegionConsensusDir;
1✔
1427
  }
1428

1429
  public void setDataRegionConsensusDir(String dataRegionConsensusDir) {
1430
    this.dataRegionConsensusDir = dataRegionConsensusDir;
1✔
1431
  }
1✔
1432

1433
  public String getSchemaRegionConsensusDir() {
1434
    return schemaRegionConsensusDir;
1✔
1435
  }
1436

1437
  public void setSchemaRegionConsensusDir(String schemaRegionConsensusDir) {
1438
    this.schemaRegionConsensusDir = schemaRegionConsensusDir;
1✔
1439
  }
1✔
1440

1441
  public String getExtDir() {
1442
    return extDir;
1✔
1443
  }
1444

1445
  public void setExtDir(String extDir) {
1446
    this.extDir = extDir;
×
1447
  }
×
1448

1449
  public String getUdfDir() {
1450
    return udfDir;
1✔
1451
  }
1452

1453
  public void setUdfDir(String udfDir) {
1454
    this.udfDir = udfDir;
1✔
1455
    updateUdfTemporaryLibDir();
1✔
1456
  }
1✔
1457

1458
  public String getUdfTemporaryLibDir() {
1459
    return udfTemporaryLibDir;
×
1460
  }
1461

1462
  public void updateUdfTemporaryLibDir() {
1463
    this.udfTemporaryLibDir = udfDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
1✔
1464
  }
1✔
1465

1466
  public String getTriggerDir() {
1467
    return triggerDir;
1✔
1468
  }
1469

1470
  public void setTriggerDir(String triggerDir) {
1471
    this.triggerDir = triggerDir;
1✔
1472
    updateTriggerTemporaryLibDir();
1✔
1473
  }
1✔
1474

1475
  public String getTriggerTemporaryLibDir() {
1476
    return triggerTemporaryLibDir;
×
1477
  }
1478

1479
  public void updateTriggerTemporaryLibDir() {
1480
    this.triggerTemporaryLibDir = triggerDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
1✔
1481
  }
1✔
1482

1483
  public String getPipeLibDir() {
1484
    return pipeDir;
1✔
1485
  }
1486

1487
  public void setPipeLibDir(String pipeDir) {
1488
    this.pipeDir = pipeDir;
1✔
1489
    updatePipeTemporaryLibDir();
1✔
1490
  }
1✔
1491

1492
  public String getPipeTemporaryLibDir() {
1493
    return pipeTemporaryLibDir;
×
1494
  }
1495

1496
  public void updatePipeTemporaryLibDir() {
1497
    this.pipeTemporaryLibDir = pipeDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
1✔
1498
  }
1✔
1499

1500
  public String getMqttDir() {
1501
    return mqttDir;
1✔
1502
  }
1503

1504
  public void setMqttDir(String mqttDir) {
1505
    this.mqttDir = mqttDir;
1✔
1506
  }
1✔
1507

1508
  public String getMultiDirStrategyClassName() {
1509
    return multiDirStrategyClassName;
1✔
1510
  }
1511

1512
  void setMultiDirStrategyClassName(String multiDirStrategyClassName) {
1513
    this.multiDirStrategyClassName = multiDirStrategyClassName;
1✔
1514
  }
1✔
1515

1516
  public void checkMultiDirStrategyClassName() {
1517
    if (isClusterMode) {
1✔
1518
      for (String multiDirStrategy : CLUSTER_ALLOWED_MULTI_DIR_STRATEGIES) {
1✔
1519
        // If the multiDirStrategyClassName is one of cluster allowed strategy, the check is passed.
1520
        if (multiDirStrategyClassName.equals(multiDirStrategy)
1✔
1521
            || multiDirStrategyClassName.equals(MULTI_DIR_STRATEGY_PREFIX + multiDirStrategy)) {
1✔
1522
          return;
1✔
1523
        }
1524
      }
1525
      String msg =
×
1526
          String.format(
×
1527
              "Cannot set multi_dir_strategy to %s, because cluster mode only allows %s.",
1528
              multiDirStrategyClassName, Arrays.toString(CLUSTER_ALLOWED_MULTI_DIR_STRATEGIES));
×
1529
      logger.error(msg);
×
1530
      throw new RuntimeException(msg);
×
1531
    }
1532
  }
1✔
1533

1534
  public int getBatchSize() {
1535
    return batchSize;
1✔
1536
  }
1537

1538
  void setBatchSize(int batchSize) {
1539
    this.batchSize = batchSize;
1✔
1540
  }
1✔
1541

1542
  public int getMaxMemtableNumber() {
1543
    return maxMemtableNumber;
×
1544
  }
1545

1546
  public void setMaxMemtableNumber(int maxMemtableNumber) {
1547
    this.maxMemtableNumber = maxMemtableNumber;
×
1548
  }
×
1549

1550
  public int getFlushThreadCount() {
1551
    return flushThreadCount;
1✔
1552
  }
1553

1554
  void setFlushThreadCount(int flushThreadCount) {
1555
    this.flushThreadCount = flushThreadCount;
1✔
1556
  }
1✔
1557

1558
  public int getQueryThreadCount() {
1559
    return queryThreadCount;
1✔
1560
  }
1561

1562
  public void setQueryThreadCount(int queryThreadCount) {
1563
    this.queryThreadCount = queryThreadCount;
1✔
1564
    this.maxBytesPerFragmentInstance = allocateMemoryForDataExchange / queryThreadCount;
1✔
1565
  }
1✔
1566

1567
  public void setDegreeOfParallelism(int degreeOfParallelism) {
1568
    if (degreeOfParallelism > 0) {
1✔
1569
      this.degreeOfParallelism = degreeOfParallelism;
1✔
1570
    }
1571
  }
1✔
1572

1573
  public int getDegreeOfParallelism() {
1574
    return degreeOfParallelism;
1✔
1575
  }
1576

1577
  public int getMaxAllowedConcurrentQueries() {
1578
    return maxAllowedConcurrentQueries;
1✔
1579
  }
1580

1581
  public void setMaxAllowedConcurrentQueries(int maxAllowedConcurrentQueries) {
1582
    this.maxAllowedConcurrentQueries = maxAllowedConcurrentQueries;
1✔
1583
  }
1✔
1584

1585
  public long getMaxBytesPerFragmentInstance() {
1586
    return maxBytesPerFragmentInstance;
1✔
1587
  }
1588

1589
  @TestOnly
1590
  public void setMaxBytesPerFragmentInstance(long maxBytesPerFragmentInstance) {
1591
    this.maxBytesPerFragmentInstance = maxBytesPerFragmentInstance;
1✔
1592
  }
1✔
1593

1594
  public int getWindowEvaluationThreadCount() {
1595
    return windowEvaluationThreadCount;
1✔
1596
  }
1597

1598
  public void setWindowEvaluationThreadCount(int windowEvaluationThreadCount) {
1599
    this.windowEvaluationThreadCount = windowEvaluationThreadCount;
1✔
1600
  }
1✔
1601

1602
  public int getMaxPendingWindowEvaluationTasks() {
1603
    return maxPendingWindowEvaluationTasks;
1✔
1604
  }
1605

1606
  public void setMaxPendingWindowEvaluationTasks(int maxPendingWindowEvaluationTasks) {
1607
    this.maxPendingWindowEvaluationTasks = maxPendingWindowEvaluationTasks;
1✔
1608
  }
1✔
1609

1610
  public long getSeqTsFileSize() {
1611
    return seqTsFileSize;
1✔
1612
  }
1613

1614
  public void setSeqTsFileSize(long seqTsFileSize) {
1615
    this.seqTsFileSize = seqTsFileSize;
1✔
1616
  }
1✔
1617

1618
  public long getUnSeqTsFileSize() {
1619
    return unSeqTsFileSize;
1✔
1620
  }
1621

1622
  public void setUnSeqTsFileSize(long unSeqTsFileSize) {
1623
    this.unSeqTsFileSize = unSeqTsFileSize;
1✔
1624
  }
1✔
1625

1626
  public int getRpcSelectorThreadCount() {
1627
    return rpcSelectorThreadCount;
1✔
1628
  }
1629

1630
  public void setRpcSelectorThreadCount(int rpcSelectorThreadCount) {
1631
    this.rpcSelectorThreadCount = rpcSelectorThreadCount;
1✔
1632
  }
1✔
1633

1634
  public int getRpcMinConcurrentClientNum() {
1635
    return rpcMinConcurrentClientNum;
1✔
1636
  }
1637

1638
  public void setRpcMinConcurrentClientNum(int rpcMinConcurrentClientNum) {
1639
    this.rpcMinConcurrentClientNum = rpcMinConcurrentClientNum;
1✔
1640
  }
1✔
1641

1642
  public int getRpcMaxConcurrentClientNum() {
1643
    return rpcMaxConcurrentClientNum;
1✔
1644
  }
1645

1646
  void setRpcMaxConcurrentClientNum(int rpcMaxConcurrentClientNum) {
1647
    this.rpcMaxConcurrentClientNum = rpcMaxConcurrentClientNum;
1✔
1648
  }
1✔
1649

1650
  public int getmRemoteSchemaCacheSize() {
1651
    return mRemoteSchemaCacheSize;
1✔
1652
  }
1653

1654
  public void setmRemoteSchemaCacheSize(int mRemoteSchemaCacheSize) {
1655
    this.mRemoteSchemaCacheSize = mRemoteSchemaCacheSize;
1✔
1656
  }
1✔
1657

1658
  String getLanguageVersion() {
1659
    return languageVersion;
1✔
1660
  }
1661

1662
  void setLanguageVersion(String languageVersion) {
1663
    this.languageVersion = languageVersion;
1✔
1664
  }
1✔
1665

1666
  public String getIoTDBVersion() {
1667
    return IoTDBConstant.VERSION;
×
1668
  }
1669

1670
  public String getIoTDBMajorVersion() {
1671
    return IoTDBConstant.MAJOR_VERSION;
×
1672
  }
1673

1674
  public String getIoTDBMajorVersion(String version) {
1675
    return "UNKNOWN".equals(version)
×
1676
        ? "UNKNOWN"
×
1677
        : version.split("\\.")[0] + "." + version.split("\\.")[1];
×
1678
  }
1679

1680
  public long getCacheFileReaderClearPeriod() {
1681
    return cacheFileReaderClearPeriod;
1✔
1682
  }
1683

1684
  public void setCacheFileReaderClearPeriod(long cacheFileReaderClearPeriod) {
1685
    this.cacheFileReaderClearPeriod = cacheFileReaderClearPeriod;
1✔
1686
  }
1✔
1687

1688
  public long getQueryTimeoutThreshold() {
1689
    return queryTimeoutThreshold;
1✔
1690
  }
1691

1692
  public void setQueryTimeoutThreshold(long queryTimeoutThreshold) {
1693
    this.queryTimeoutThreshold = queryTimeoutThreshold;
1✔
1694
  }
1✔
1695

1696
  public int getSessionTimeoutThreshold() {
1697
    return sessionTimeoutThreshold;
1✔
1698
  }
1699

1700
  public void setSessionTimeoutThreshold(int sessionTimeoutThreshold) {
1701
    this.sessionTimeoutThreshold = sessionTimeoutThreshold;
1✔
1702
  }
1✔
1703

1704
  public String getRpcImplClassName() {
1705
    return rpcImplClassName;
×
1706
  }
1707

1708
  public void setRpcImplClassName(String rpcImplClassName) {
1709
    this.rpcImplClassName = rpcImplClassName;
×
1710
  }
×
1711

1712
  public WALMode getWalMode() {
1713
    return walMode;
1✔
1714
  }
1715

1716
  public void setWalMode(WALMode walMode) {
1717
    this.walMode = walMode;
1✔
1718
  }
1✔
1719

1720
  public int getMaxWalNodesNum() {
1721
    return maxWalNodesNum;
1✔
1722
  }
1723

1724
  void setMaxWalNodesNum(int maxWalNodesNum) {
1725
    this.maxWalNodesNum = maxWalNodesNum;
×
1726
  }
×
1727

1728
  public long getWalAsyncModeFsyncDelayInMs() {
1729
    return walAsyncModeFsyncDelayInMs;
1✔
1730
  }
1731

1732
  void setWalAsyncModeFsyncDelayInMs(long walAsyncModeFsyncDelayInMs) {
1733
    this.walAsyncModeFsyncDelayInMs = walAsyncModeFsyncDelayInMs;
1✔
1734
  }
1✔
1735

1736
  public long getWalSyncModeFsyncDelayInMs() {
1737
    return walSyncModeFsyncDelayInMs;
1✔
1738
  }
1739

1740
  public void setWalSyncModeFsyncDelayInMs(long walSyncModeFsyncDelayInMs) {
1741
    this.walSyncModeFsyncDelayInMs = walSyncModeFsyncDelayInMs;
1✔
1742
  }
1✔
1743

1744
  public int getWalBufferSize() {
1745
    return walBufferSize;
1✔
1746
  }
1747

1748
  public void setWalBufferSize(int walBufferSize) {
1749
    this.walBufferSize = walBufferSize;
1✔
1750
  }
1✔
1751

1752
  public int getWalBufferQueueCapacity() {
1753
    return walBufferQueueCapacity;
1✔
1754
  }
1755

1756
  void setWalBufferQueueCapacity(int walBufferQueueCapacity) {
1757
    this.walBufferQueueCapacity = walBufferQueueCapacity;
1✔
1758
  }
1✔
1759

1760
  public long getWalFileSizeThresholdInByte() {
1761
    return walFileSizeThresholdInByte;
1✔
1762
  }
1763

1764
  void setWalFileSizeThresholdInByte(long walFileSizeThresholdInByte) {
1765
    this.walFileSizeThresholdInByte = walFileSizeThresholdInByte;
1✔
1766
  }
1✔
1767

1768
  public long getCheckpointFileSizeThresholdInByte() {
1769
    return checkpointFileSizeThresholdInByte;
1✔
1770
  }
1771

1772
  public void setCheckpointFileSizeThresholdInByte(long checkpointFileSizeThresholdInByte) {
1773
    this.checkpointFileSizeThresholdInByte = checkpointFileSizeThresholdInByte;
1✔
1774
  }
1✔
1775

1776
  public double getWalMinEffectiveInfoRatio() {
1777
    return walMinEffectiveInfoRatio;
1✔
1778
  }
1779

1780
  void setWalMinEffectiveInfoRatio(double walMinEffectiveInfoRatio) {
1781
    this.walMinEffectiveInfoRatio = walMinEffectiveInfoRatio;
1✔
1782
  }
1✔
1783

1784
  public long getWalMemTableSnapshotThreshold() {
1785
    return walMemTableSnapshotThreshold;
1✔
1786
  }
1787

1788
  void setWalMemTableSnapshotThreshold(long walMemTableSnapshotThreshold) {
1789
    this.walMemTableSnapshotThreshold = walMemTableSnapshotThreshold;
1✔
1790
  }
1✔
1791

1792
  public int getMaxWalMemTableSnapshotNum() {
1793
    return maxWalMemTableSnapshotNum;
1✔
1794
  }
1795

1796
  void setMaxWalMemTableSnapshotNum(int maxWalMemTableSnapshotNum) {
1797
    this.maxWalMemTableSnapshotNum = maxWalMemTableSnapshotNum;
1✔
1798
  }
1✔
1799

1800
  public long getDeleteWalFilesPeriodInMs() {
1801
    return deleteWalFilesPeriodInMs;
1✔
1802
  }
1803

1804
  void setDeleteWalFilesPeriodInMs(long deleteWalFilesPeriodInMs) {
1805
    this.deleteWalFilesPeriodInMs = deleteWalFilesPeriodInMs;
1✔
1806
  }
1✔
1807

1808
  public boolean isChunkBufferPoolEnable() {
1809
    return chunkBufferPoolEnable;
×
1810
  }
1811

1812
  void setChunkBufferPoolEnable(boolean chunkBufferPoolEnable) {
1813
    this.chunkBufferPoolEnable = chunkBufferPoolEnable;
×
1814
  }
×
1815

1816
  public long getMergeIntervalSec() {
1817
    return mergeIntervalSec;
1✔
1818
  }
1819

1820
  void setMergeIntervalSec(long mergeIntervalSec) {
1821
    this.mergeIntervalSec = mergeIntervalSec;
1✔
1822
  }
1✔
1823

1824
  public double getBufferedArraysMemoryProportion() {
1825
    return bufferedArraysMemoryProportion;
1✔
1826
  }
1827

1828
  public void setBufferedArraysMemoryProportion(double bufferedArraysMemoryProportion) {
1829
    this.bufferedArraysMemoryProportion = bufferedArraysMemoryProportion;
1✔
1830
  }
1✔
1831

1832
  public double getFlushProportion() {
1833
    return flushProportion;
1✔
1834
  }
1835

1836
  public void setFlushProportion(double flushProportion) {
1837
    this.flushProportion = flushProportion;
1✔
1838
  }
1✔
1839

1840
  public double getRejectProportion() {
1841
    return rejectProportion;
1✔
1842
  }
1843

1844
  public void setRejectProportion(double rejectProportion) {
1845
    this.rejectProportion = rejectProportion;
1✔
1846
  }
1✔
1847

1848
  public double getWriteMemoryVariationReportProportion() {
1849
    return writeMemoryVariationReportProportion;
1✔
1850
  }
1851

1852
  public void setWriteMemoryVariationReportProportion(double writeMemoryVariationReportProportion) {
1853
    this.writeMemoryVariationReportProportion = writeMemoryVariationReportProportion;
1✔
1854
  }
1✔
1855

1856
  public long getAllocateMemoryForStorageEngine() {
1857
    return allocateMemoryForStorageEngine;
1✔
1858
  }
1859

1860
  public void setAllocateMemoryForStorageEngine(long allocateMemoryForStorageEngine) {
1861
    this.allocateMemoryForStorageEngine = allocateMemoryForStorageEngine;
×
1862
  }
×
1863

1864
  public long getAllocateMemoryForSchema() {
1865
    return allocateMemoryForSchema;
1✔
1866
  }
1867

1868
  public void setAllocateMemoryForSchema(long allocateMemoryForSchema) {
1869
    this.allocateMemoryForSchema = allocateMemoryForSchema;
×
1870

1871
    this.allocateMemoryForSchemaRegion = allocateMemoryForSchema * 5 / 10;
×
1872
    this.allocateMemoryForSchemaCache = allocateMemoryForSchema * 4 / 10;
×
1873
    this.allocateMemoryForPartitionCache = allocateMemoryForSchema / 10;
×
1874
  }
×
1875

1876
  public long getAllocateMemoryForConsensus() {
1877
    return allocateMemoryForConsensus;
1✔
1878
  }
1879

1880
  public void setAllocateMemoryForConsensus(long allocateMemoryForConsensus) {
1881
    this.allocateMemoryForConsensus = allocateMemoryForConsensus;
×
1882
    this.allocateMemoryForWALPipeCache = allocateMemoryForConsensus / 10;
×
1883
  }
×
1884

1885
  public long getAllocateMemoryForRead() {
1886
    return allocateMemoryForRead;
1✔
1887
  }
1888

1889
  void setAllocateMemoryForRead(long allocateMemoryForRead) {
1890
    this.allocateMemoryForRead = allocateMemoryForRead;
×
1891

1892
    this.allocateMemoryForBloomFilterCache = allocateMemoryForRead / 1001;
×
1893
    this.allocateMemoryForTimeSeriesMetaDataCache = allocateMemoryForRead * 200 / 1001;
×
1894
    this.allocateMemoryForChunkCache = allocateMemoryForRead * 100 / 1001;
×
1895
    this.allocateMemoryForCoordinator = allocateMemoryForRead * 50 / 1001;
×
1896
    this.allocateMemoryForOperators = allocateMemoryForRead * 200 / 1001;
×
1897
    this.allocateMemoryForDataExchange = allocateMemoryForRead * 200 / 1001;
×
1898
    this.maxBytesPerFragmentInstance = allocateMemoryForDataExchange / queryThreadCount;
×
1899
    this.allocateMemoryForTimeIndex = allocateMemoryForRead * 200 / 1001;
×
1900
  }
×
1901

1902
  public long getAllocateMemoryForFree() {
1903
    return Runtime.getRuntime().maxMemory()
×
1904
        - allocateMemoryForStorageEngine
1905
        - allocateMemoryForRead
1906
        - allocateMemoryForSchema;
1907
  }
1908

1909
  public boolean isEnablePartialInsert() {
1910
    return enablePartialInsert;
1✔
1911
  }
1912

1913
  public void setEnablePartialInsert(boolean enablePartialInsert) {
1914
    this.enablePartialInsert = enablePartialInsert;
1✔
1915
  }
1✔
1916

1917
  public boolean isEnable13DataInsertAdapt() {
1918
    return enable13DataInsertAdapt;
1✔
1919
  }
1920

1921
  public void setEnable13DataInsertAdapt(boolean enable13DataInsertAdapt) {
1922
    this.enable13DataInsertAdapt = enable13DataInsertAdapt;
1✔
1923
  }
1✔
1924

1925
  public int getCompactionThreadCount() {
1926
    return compactionThreadCount;
1✔
1927
  }
1928

1929
  public void setCompactionThreadCount(int compactionThreadCount) {
1930
    this.compactionThreadCount = compactionThreadCount;
1✔
1931
  }
1✔
1932

1933
  public int getContinuousQueryThreadNum() {
1934
    return continuousQueryThreadNum;
1✔
1935
  }
1936

1937
  public void setContinuousQueryThreadNum(int continuousQueryThreadNum) {
1938
    this.continuousQueryThreadNum = continuousQueryThreadNum;
1✔
1939
  }
1✔
1940

1941
  public long getContinuousQueryMinimumEveryInterval() {
1942
    return continuousQueryMinimumEveryInterval;
×
1943
  }
1944

1945
  public void setContinuousQueryMinimumEveryInterval(long minimumEveryInterval) {
1946
    this.continuousQueryMinimumEveryInterval = minimumEveryInterval;
1✔
1947
  }
1✔
1948

1949
  public long getIntoOperationBufferSizeInByte() {
1950
    return intoOperationBufferSizeInByte;
1✔
1951
  }
1952

1953
  public void setIntoOperationBufferSizeInByte(long intoOperationBufferSizeInByte) {
1954
    this.intoOperationBufferSizeInByte = intoOperationBufferSizeInByte;
1✔
1955
  }
1✔
1956

1957
  public int getSelectIntoInsertTabletPlanRowLimit() {
1958
    return selectIntoInsertTabletPlanRowLimit;
1✔
1959
  }
1960

1961
  public void setSelectIntoInsertTabletPlanRowLimit(int selectIntoInsertTabletPlanRowLimit) {
1962
    this.selectIntoInsertTabletPlanRowLimit = selectIntoInsertTabletPlanRowLimit;
1✔
1963
  }
1✔
1964

1965
  public int getIntoOperationExecutionThreadCount() {
1966
    return intoOperationExecutionThreadCount;
1✔
1967
  }
1968

1969
  public void setIntoOperationExecutionThreadCount(int intoOperationExecutionThreadCount) {
1970
    this.intoOperationExecutionThreadCount = intoOperationExecutionThreadCount;
1✔
1971
  }
1✔
1972

1973
  public int getCompactionWriteThroughputMbPerSec() {
1974
    return compactionWriteThroughputMbPerSec;
1✔
1975
  }
1976

1977
  public void setCompactionWriteThroughputMbPerSec(int compactionWriteThroughputMbPerSec) {
1978
    this.compactionWriteThroughputMbPerSec = compactionWriteThroughputMbPerSec;
1✔
1979
  }
1✔
1980

1981
  public boolean isEnableMemControl() {
1982
    return enableMemControl;
1✔
1983
  }
1984

1985
  public void setEnableMemControl(boolean enableMemControl) {
1986
    this.enableMemControl = enableMemControl;
1✔
1987
  }
1✔
1988

1989
  public long getMemtableSizeThreshold() {
1990
    return memtableSizeThreshold;
1✔
1991
  }
1992

1993
  public void setMemtableSizeThreshold(long memtableSizeThreshold) {
1994
    this.memtableSizeThreshold = memtableSizeThreshold;
1✔
1995
  }
1✔
1996

1997
  public boolean isEnableTimedFlushSeqMemtable() {
1998
    return enableTimedFlushSeqMemtable;
1✔
1999
  }
2000

2001
  public void setEnableTimedFlushSeqMemtable(boolean enableTimedFlushSeqMemtable) {
2002
    this.enableTimedFlushSeqMemtable = enableTimedFlushSeqMemtable;
1✔
2003
  }
1✔
2004

2005
  public long getSeqMemtableFlushInterval() {
2006
    return seqMemtableFlushInterval;
1✔
2007
  }
2008

2009
  public void setSeqMemtableFlushInterval(long seqMemtableFlushInterval) {
2010
    this.seqMemtableFlushInterval = seqMemtableFlushInterval;
1✔
2011
  }
1✔
2012

2013
  public long getSeqMemtableFlushCheckInterval() {
2014
    return seqMemtableFlushCheckInterval;
1✔
2015
  }
2016

2017
  public void setSeqMemtableFlushCheckInterval(long seqMemtableFlushCheckInterval) {
2018
    this.seqMemtableFlushCheckInterval = seqMemtableFlushCheckInterval;
1✔
2019
  }
1✔
2020

2021
  public boolean isEnableTimedFlushUnseqMemtable() {
2022
    return enableTimedFlushUnseqMemtable;
1✔
2023
  }
2024

2025
  public void setEnableTimedFlushUnseqMemtable(boolean enableTimedFlushUnseqMemtable) {
2026
    this.enableTimedFlushUnseqMemtable = enableTimedFlushUnseqMemtable;
1✔
2027
  }
1✔
2028

2029
  public long getUnseqMemtableFlushInterval() {
2030
    return unseqMemtableFlushInterval;
1✔
2031
  }
2032

2033
  public void setUnseqMemtableFlushInterval(long unseqMemtableFlushInterval) {
2034
    this.unseqMemtableFlushInterval = unseqMemtableFlushInterval;
1✔
2035
  }
1✔
2036

2037
  public long getUnseqMemtableFlushCheckInterval() {
2038
    return unseqMemtableFlushCheckInterval;
1✔
2039
  }
2040

2041
  public void setUnseqMemtableFlushCheckInterval(long unseqMemtableFlushCheckInterval) {
2042
    this.unseqMemtableFlushCheckInterval = unseqMemtableFlushCheckInterval;
1✔
2043
  }
1✔
2044

2045
  public TVListSortAlgorithm getTvListSortAlgorithm() {
2046
    return tvListSortAlgorithm;
1✔
2047
  }
2048

2049
  public void setTvListSortAlgorithm(TVListSortAlgorithm tvListSortAlgorithm) {
2050
    this.tvListSortAlgorithm = tvListSortAlgorithm;
1✔
2051
  }
1✔
2052

2053
  public int getAvgSeriesPointNumberThreshold() {
2054
    return avgSeriesPointNumberThreshold;
1✔
2055
  }
2056

2057
  public void setAvgSeriesPointNumberThreshold(int avgSeriesPointNumberThreshold) {
2058
    this.avgSeriesPointNumberThreshold = avgSeriesPointNumberThreshold;
1✔
2059
  }
1✔
2060

2061
  public long getCrossCompactionFileSelectionTimeBudget() {
2062
    return crossCompactionFileSelectionTimeBudget;
1✔
2063
  }
2064

2065
  void setCrossCompactionFileSelectionTimeBudget(long crossCompactionFileSelectionTimeBudget) {
2066
    this.crossCompactionFileSelectionTimeBudget = crossCompactionFileSelectionTimeBudget;
1✔
2067
  }
1✔
2068

2069
  public boolean isRpcThriftCompressionEnable() {
2070
    return rpcThriftCompressionEnable;
1✔
2071
  }
2072

2073
  public void setRpcThriftCompressionEnable(boolean rpcThriftCompressionEnable) {
2074
    this.rpcThriftCompressionEnable = rpcThriftCompressionEnable;
1✔
2075
  }
1✔
2076

2077
  public boolean isMetaDataCacheEnable() {
2078
    return metaDataCacheEnable;
1✔
2079
  }
2080

2081
  public void setMetaDataCacheEnable(boolean metaDataCacheEnable) {
2082
    this.metaDataCacheEnable = metaDataCacheEnable;
1✔
2083
  }
1✔
2084

2085
  public long getAllocateMemoryForBloomFilterCache() {
2086
    return allocateMemoryForBloomFilterCache;
1✔
2087
  }
2088

2089
  public void setAllocateMemoryForBloomFilterCache(long allocateMemoryForBloomFilterCache) {
2090
    this.allocateMemoryForBloomFilterCache = allocateMemoryForBloomFilterCache;
×
2091
  }
×
2092

2093
  public long getAllocateMemoryForTimeSeriesMetaDataCache() {
2094
    return allocateMemoryForTimeSeriesMetaDataCache;
1✔
2095
  }
2096

2097
  public void setAllocateMemoryForTimeSeriesMetaDataCache(
2098
      long allocateMemoryForTimeSeriesMetaDataCache) {
2099
    this.allocateMemoryForTimeSeriesMetaDataCache = allocateMemoryForTimeSeriesMetaDataCache;
×
2100
  }
×
2101

2102
  public long getAllocateMemoryForChunkCache() {
2103
    return allocateMemoryForChunkCache;
1✔
2104
  }
2105

2106
  public void setAllocateMemoryForChunkCache(long allocateMemoryForChunkCache) {
2107
    this.allocateMemoryForChunkCache = allocateMemoryForChunkCache;
×
2108
  }
×
2109

2110
  public long getAllocateMemoryForCoordinator() {
2111
    return allocateMemoryForCoordinator;
×
2112
  }
2113

2114
  public void setAllocateMemoryForCoordinator(long allocateMemoryForCoordinator) {
2115
    this.allocateMemoryForCoordinator = allocateMemoryForCoordinator;
×
2116
  }
×
2117

2118
  public long getAllocateMemoryForOperators() {
2119
    return allocateMemoryForOperators;
1✔
2120
  }
2121

2122
  public void setAllocateMemoryForOperators(long allocateMemoryForOperators) {
2123
    this.allocateMemoryForOperators = allocateMemoryForOperators;
×
2124
  }
×
2125

2126
  public long getAllocateMemoryForDataExchange() {
2127
    return allocateMemoryForDataExchange;
1✔
2128
  }
2129

2130
  public void setAllocateMemoryForDataExchange(long allocateMemoryForDataExchange) {
2131
    this.allocateMemoryForDataExchange = allocateMemoryForDataExchange;
×
2132
    this.maxBytesPerFragmentInstance = allocateMemoryForDataExchange / queryThreadCount;
×
2133
  }
×
2134

2135
  public long getAllocateMemoryForTimeIndex() {
2136
    return allocateMemoryForTimeIndex;
1✔
2137
  }
2138

2139
  public void setAllocateMemoryForTimeIndex(long allocateMemoryForTimeIndex) {
2140
    this.allocateMemoryForTimeIndex = allocateMemoryForTimeIndex;
×
2141
  }
×
2142

2143
  public long getAllocateMemoryForTimePartitionInfo() {
2144
    return allocateMemoryForTimePartitionInfo;
1✔
2145
  }
2146

2147
  public void setAllocateMemoryForTimePartitionInfo(long allocateMemoryForTimePartitionInfo) {
2148
    this.allocateMemoryForTimePartitionInfo = allocateMemoryForTimePartitionInfo;
×
2149
  }
×
2150

2151
  public long getAllocateMemoryForWALPipeCache() {
2152
    return allocateMemoryForWALPipeCache;
1✔
2153
  }
2154

2155
  public void setAllocateMemoryForWALPipeCache(long allocateMemoryForWALPipeCache) {
2156
    this.allocateMemoryForWALPipeCache = allocateMemoryForWALPipeCache;
×
2157
  }
×
2158

2159
  public boolean isEnableQueryMemoryEstimation() {
2160
    return enableQueryMemoryEstimation;
1✔
2161
  }
2162

2163
  public void setEnableQueryMemoryEstimation(boolean enableQueryMemoryEstimation) {
2164
    this.enableQueryMemoryEstimation = enableQueryMemoryEstimation;
1✔
2165
  }
1✔
2166

2167
  public boolean isAutoCreateSchemaEnabled() {
2168
    return enableAutoCreateSchema;
1✔
2169
  }
2170

2171
  public void setAutoCreateSchemaEnabled(boolean enableAutoCreateSchema) {
2172
    this.enableAutoCreateSchema = enableAutoCreateSchema;
1✔
2173
  }
1✔
2174

2175
  public TSDataType getBooleanStringInferType() {
2176
    return booleanStringInferType;
1✔
2177
  }
2178

2179
  public void setBooleanStringInferType(TSDataType booleanStringInferType) {
2180
    this.booleanStringInferType = booleanStringInferType;
1✔
2181
  }
1✔
2182

2183
  public TSDataType getIntegerStringInferType() {
2184
    return integerStringInferType;
1✔
2185
  }
2186

2187
  public void setIntegerStringInferType(TSDataType integerStringInferType) {
2188
    this.integerStringInferType = integerStringInferType;
1✔
2189
  }
1✔
2190

2191
  public void setLongStringInferType(TSDataType longStringInferType) {
2192
    this.longStringInferType = longStringInferType;
1✔
2193
  }
1✔
2194

2195
  public TSDataType getLongStringInferType() {
2196
    return longStringInferType;
1✔
2197
  }
2198

2199
  public TSDataType getFloatingStringInferType() {
2200
    return floatingStringInferType;
1✔
2201
  }
2202

2203
  public void setFloatingStringInferType(TSDataType floatingNumberStringInferType) {
2204
    this.floatingStringInferType = floatingNumberStringInferType;
1✔
2205
  }
1✔
2206

2207
  public TSDataType getNanStringInferType() {
2208
    return nanStringInferType;
1✔
2209
  }
2210

2211
  public void setNanStringInferType(TSDataType nanStringInferType) {
2212
    if (nanStringInferType != TSDataType.DOUBLE
1✔
2213
        && nanStringInferType != TSDataType.FLOAT
2214
        && nanStringInferType != TSDataType.TEXT) {
2215
      throw new IllegalArgumentException(
×
2216
          "Config Property nan_string_infer_type can only be FLOAT, DOUBLE or TEXT but is "
2217
              + nanStringInferType);
2218
    }
2219
    this.nanStringInferType = nanStringInferType;
1✔
2220
  }
1✔
2221

2222
  public int getDefaultStorageGroupLevel() {
2223
    return defaultStorageGroupLevel;
1✔
2224
  }
2225

2226
  void setDefaultStorageGroupLevel(int defaultStorageGroupLevel) {
2227
    this.defaultStorageGroupLevel = defaultStorageGroupLevel;
1✔
2228
  }
1✔
2229

2230
  public TSEncoding getDefaultBooleanEncoding() {
2231
    return defaultBooleanEncoding;
1✔
2232
  }
2233

2234
  public void setDefaultBooleanEncoding(TSEncoding defaultBooleanEncoding) {
2235
    this.defaultBooleanEncoding = defaultBooleanEncoding;
×
2236
  }
×
2237

2238
  void setDefaultBooleanEncoding(String defaultBooleanEncoding) {
2239
    this.defaultBooleanEncoding = TSEncoding.valueOf(defaultBooleanEncoding);
1✔
2240
  }
1✔
2241

2242
  public TSEncoding getDefaultInt32Encoding() {
2243
    return defaultInt32Encoding;
1✔
2244
  }
2245

2246
  public void setDefaultInt32Encoding(TSEncoding defaultInt32Encoding) {
2247
    this.defaultInt32Encoding = defaultInt32Encoding;
×
2248
  }
×
2249

2250
  void setDefaultInt32Encoding(String defaultInt32Encoding) {
2251
    this.defaultInt32Encoding = TSEncoding.valueOf(defaultInt32Encoding);
1✔
2252
  }
1✔
2253

2254
  public TSEncoding getDefaultInt64Encoding() {
2255
    return defaultInt64Encoding;
1✔
2256
  }
2257

2258
  public void setDefaultInt64Encoding(TSEncoding defaultInt64Encoding) {
2259
    this.defaultInt64Encoding = defaultInt64Encoding;
×
2260
  }
×
2261

2262
  void setDefaultInt64Encoding(String defaultInt64Encoding) {
2263
    this.defaultInt64Encoding = TSEncoding.valueOf(defaultInt64Encoding);
1✔
2264
  }
1✔
2265

2266
  public TSEncoding getDefaultFloatEncoding() {
2267
    return defaultFloatEncoding;
1✔
2268
  }
2269

2270
  public void setDefaultFloatEncoding(TSEncoding defaultFloatEncoding) {
2271
    this.defaultFloatEncoding = defaultFloatEncoding;
×
2272
  }
×
2273

2274
  void setDefaultFloatEncoding(String defaultFloatEncoding) {
2275
    this.defaultFloatEncoding = TSEncoding.valueOf(defaultFloatEncoding);
1✔
2276
  }
1✔
2277

2278
  public TSEncoding getDefaultDoubleEncoding() {
2279
    return defaultDoubleEncoding;
1✔
2280
  }
2281

2282
  public void setDefaultDoubleEncoding(TSEncoding defaultDoubleEncoding) {
2283
    this.defaultDoubleEncoding = defaultDoubleEncoding;
×
2284
  }
×
2285

2286
  void setDefaultDoubleEncoding(String defaultDoubleEncoding) {
2287
    this.defaultDoubleEncoding = TSEncoding.valueOf(defaultDoubleEncoding);
1✔
2288
  }
1✔
2289

2290
  public TSEncoding getDefaultTextEncoding() {
2291
    return defaultTextEncoding;
1✔
2292
  }
2293

2294
  public void setDefaultTextEncoding(TSEncoding defaultTextEncoding) {
2295
    this.defaultTextEncoding = defaultTextEncoding;
×
2296
  }
×
2297

2298
  void setDefaultTextEncoding(String defaultTextEncoding) {
2299
    this.defaultTextEncoding = TSEncoding.valueOf(defaultTextEncoding);
1✔
2300
  }
1✔
2301

2302
  FSType getTsFileStorageFs() {
2303
    return tsFileStorageFs;
1✔
2304
  }
2305

2306
  void setTsFileStorageFs(String tsFileStorageFs) {
2307
    this.tsFileStorageFs = FSType.valueOf(tsFileStorageFs);
1✔
2308
  }
1✔
2309

2310
  public boolean isEnableHDFS() {
2311
    return enableHDFS;
1✔
2312
  }
2313

2314
  public void setEnableHDFS(boolean enableHDFS) {
2315
    this.enableHDFS = enableHDFS;
1✔
2316
  }
1✔
2317

2318
  String getCoreSitePath() {
2319
    return coreSitePath;
1✔
2320
  }
2321

2322
  void setCoreSitePath(String coreSitePath) {
2323
    this.coreSitePath = coreSitePath;
1✔
2324
  }
1✔
2325

2326
  String getHdfsSitePath() {
2327
    return hdfsSitePath;
1✔
2328
  }
2329

2330
  void setHdfsSitePath(String hdfsSitePath) {
2331
    this.hdfsSitePath = hdfsSitePath;
1✔
2332
  }
1✔
2333

2334
  public String[] getHdfsIp() {
2335
    return hdfsIp.split(",");
×
2336
  }
2337

2338
  String getRawHDFSIp() {
2339
    return hdfsIp;
1✔
2340
  }
2341

2342
  void setHdfsIp(String[] hdfsIp) {
2343
    this.hdfsIp = String.join(",", hdfsIp);
1✔
2344
  }
1✔
2345

2346
  String getHdfsPort() {
2347
    return hdfsPort;
1✔
2348
  }
2349

2350
  void setHdfsPort(String hdfsPort) {
2351
    this.hdfsPort = hdfsPort;
1✔
2352
  }
1✔
2353

2354
  public int getSettleThreadNum() {
2355
    return settleThreadNum;
×
2356
  }
2357

2358
  String getDfsNameServices() {
2359
    return dfsNameServices;
1✔
2360
  }
2361

2362
  void setDfsNameServices(String dfsNameServices) {
2363
    this.dfsNameServices = dfsNameServices;
1✔
2364
  }
1✔
2365

2366
  public String[] getDfsHaNamenodes() {
2367
    return dfsHaNamenodes.split(",");
×
2368
  }
2369

2370
  String getRawDfsHaNamenodes() {
2371
    return dfsHaNamenodes;
1✔
2372
  }
2373

2374
  void setDfsHaNamenodes(String[] dfsHaNamenodes) {
2375
    this.dfsHaNamenodes = String.join(",", dfsHaNamenodes);
1✔
2376
  }
1✔
2377

2378
  boolean isDfsHaAutomaticFailoverEnabled() {
2379
    return dfsHaAutomaticFailoverEnabled;
1✔
2380
  }
2381

2382
  void setDfsHaAutomaticFailoverEnabled(boolean dfsHaAutomaticFailoverEnabled) {
2383
    this.dfsHaAutomaticFailoverEnabled = dfsHaAutomaticFailoverEnabled;
1✔
2384
  }
1✔
2385

2386
  String getDfsClientFailoverProxyProvider() {
2387
    return dfsClientFailoverProxyProvider;
1✔
2388
  }
2389

2390
  void setDfsClientFailoverProxyProvider(String dfsClientFailoverProxyProvider) {
2391
    this.dfsClientFailoverProxyProvider = dfsClientFailoverProxyProvider;
1✔
2392
  }
1✔
2393

2394
  boolean isUseKerberos() {
2395
    return useKerberos;
1✔
2396
  }
2397

2398
  void setUseKerberos(boolean useKerberos) {
2399
    this.useKerberos = useKerberos;
1✔
2400
  }
1✔
2401

2402
  String getKerberosKeytabFilePath() {
2403
    return kerberosKeytabFilePath;
1✔
2404
  }
2405

2406
  void setKerberosKeytabFilePath(String kerberosKeytabFilePath) {
2407
    this.kerberosKeytabFilePath = kerberosKeytabFilePath;
1✔
2408
  }
1✔
2409

2410
  String getKerberosPrincipal() {
2411
    return kerberosPrincipal;
1✔
2412
  }
2413

2414
  void setKerberosPrincipal(String kerberosPrincipal) {
2415
    this.kerberosPrincipal = kerberosPrincipal;
1✔
2416
  }
1✔
2417

2418
  public int getThriftServerAwaitTimeForStopService() {
2419
    return thriftServerAwaitTimeForStopService;
1✔
2420
  }
2421

2422
  public void setThriftServerAwaitTimeForStopService(int thriftServerAwaitTimeForStopService) {
2423
    this.thriftServerAwaitTimeForStopService = thriftServerAwaitTimeForStopService;
1✔
2424
  }
1✔
2425

2426
  public boolean isEnableMQTTService() {
2427
    return enableMQTTService;
×
2428
  }
2429

2430
  public void setEnableMQTTService(boolean enableMQTTService) {
2431
    this.enableMQTTService = enableMQTTService;
1✔
2432
  }
1✔
2433

2434
  public String getMqttHost() {
2435
    return mqttHost;
×
2436
  }
2437

2438
  public void setMqttHost(String mqttHost) {
2439
    this.mqttHost = mqttHost;
1✔
2440
  }
1✔
2441

2442
  public int getMqttPort() {
2443
    return mqttPort;
×
2444
  }
2445

2446
  public void setMqttPort(int mqttPort) {
2447
    this.mqttPort = mqttPort;
×
2448
  }
×
2449

2450
  public int getMqttHandlerPoolSize() {
2451
    return mqttHandlerPoolSize;
×
2452
  }
2453

2454
  public void setMqttHandlerPoolSize(int mqttHandlerPoolSize) {
2455
    this.mqttHandlerPoolSize = mqttHandlerPoolSize;
×
2456
  }
×
2457

2458
  public String getMqttPayloadFormatter() {
2459
    return mqttPayloadFormatter;
×
2460
  }
2461

2462
  public void setMqttPayloadFormatter(String mqttPayloadFormatter) {
2463
    this.mqttPayloadFormatter = mqttPayloadFormatter;
×
2464
  }
×
2465

2466
  public int getMqttMaxMessageSize() {
2467
    return mqttMaxMessageSize;
×
2468
  }
2469

2470
  public void setMqttMaxMessageSize(int mqttMaxMessageSize) {
2471
    this.mqttMaxMessageSize = mqttMaxMessageSize;
×
2472
  }
×
2473

2474
  public int getTagAttributeFlushInterval() {
2475
    return tagAttributeFlushInterval;
1✔
2476
  }
2477

2478
  public void setTagAttributeFlushInterval(int tagAttributeFlushInterval) {
2479
    this.tagAttributeFlushInterval = tagAttributeFlushInterval;
1✔
2480
  }
1✔
2481

2482
  public int getPrimitiveArraySize() {
2483
    return primitiveArraySize;
1✔
2484
  }
2485

2486
  public void setPrimitiveArraySize(int primitiveArraySize) {
2487
    this.primitiveArraySize = primitiveArraySize;
1✔
2488
  }
1✔
2489

2490
  public long getStartUpNanosecond() {
2491
    return startUpNanosecond;
1✔
2492
  }
2493

2494
  public int getThriftMaxFrameSize() {
2495
    return thriftMaxFrameSize;
1✔
2496
  }
2497

2498
  public void setThriftMaxFrameSize(int thriftMaxFrameSize) {
2499
    this.thriftMaxFrameSize = thriftMaxFrameSize;
1✔
2500
    RpcTransportFactory.setThriftMaxFrameSize(this.thriftMaxFrameSize);
1✔
2501
  }
1✔
2502

2503
  public int getThriftDefaultBufferSize() {
2504
    return thriftDefaultBufferSize;
1✔
2505
  }
2506

2507
  public void setThriftDefaultBufferSize(int thriftDefaultBufferSize) {
2508
    this.thriftDefaultBufferSize = thriftDefaultBufferSize;
1✔
2509
    RpcTransportFactory.setDefaultBufferCapacity(this.thriftDefaultBufferSize);
1✔
2510
  }
1✔
2511

2512
  public int getCheckPeriodWhenInsertBlocked() {
2513
    return checkPeriodWhenInsertBlocked;
1✔
2514
  }
2515

2516
  public void setCheckPeriodWhenInsertBlocked(int checkPeriodWhenInsertBlocked) {
2517
    this.checkPeriodWhenInsertBlocked = checkPeriodWhenInsertBlocked;
1✔
2518
  }
1✔
2519

2520
  public int getMaxWaitingTimeWhenInsertBlocked() {
2521
    return maxWaitingTimeWhenInsertBlockedInMs;
1✔
2522
  }
2523

2524
  public void setMaxWaitingTimeWhenInsertBlocked(int maxWaitingTimeWhenInsertBlocked) {
2525
    this.maxWaitingTimeWhenInsertBlockedInMs = maxWaitingTimeWhenInsertBlocked;
1✔
2526
  }
1✔
2527

2528
  public long getSlowQueryThreshold() {
2529
    return slowQueryThreshold;
1✔
2530
  }
2531

2532
  public void setSlowQueryThreshold(long slowQueryThreshold) {
2533
    this.slowQueryThreshold = slowQueryThreshold;
1✔
2534
  }
1✔
2535

2536
  public boolean isEnableIndex() {
2537
    return enableIndex;
1✔
2538
  }
2539

2540
  public void setEnableIndex(boolean enableIndex) {
2541
    this.enableIndex = enableIndex;
1✔
2542
  }
1✔
2543

2544
  void setConcurrentIndexBuildThread(int concurrentIndexBuildThread) {
2545
    this.concurrentIndexBuildThread = concurrentIndexBuildThread;
1✔
2546
  }
1✔
2547

2548
  public int getConcurrentIndexBuildThread() {
2549
    return concurrentIndexBuildThread;
1✔
2550
  }
2551

2552
  public String getIndexRootFolder() {
2553
    return indexRootFolder;
1✔
2554
  }
2555

2556
  public void setIndexRootFolder(String indexRootFolder) {
2557
    this.indexRootFolder = indexRootFolder;
1✔
2558
  }
1✔
2559

2560
  public int getDefaultIndexWindowRange() {
2561
    return defaultIndexWindowRange;
1✔
2562
  }
2563

2564
  public void setDefaultIndexWindowRange(int defaultIndexWindowRange) {
2565
    this.defaultIndexWindowRange = defaultIndexWindowRange;
1✔
2566
  }
1✔
2567

2568
  public int getDataRegionNum() {
2569
    return dataRegionNum;
1✔
2570
  }
2571

2572
  public void setDataRegionNum(int dataRegionNum) {
2573
    this.dataRegionNum = dataRegionNum;
1✔
2574
  }
1✔
2575

2576
  public long getRecoveryLogIntervalInMs() {
2577
    return recoveryLogIntervalInMs;
1✔
2578
  }
2579

2580
  public void setRecoveryLogIntervalInMs(long recoveryLogIntervalInMs) {
2581
    this.recoveryLogIntervalInMs = recoveryLogIntervalInMs;
1✔
2582
  }
1✔
2583

2584
  public boolean isRpcAdvancedCompressionEnable() {
2585
    return rpcAdvancedCompressionEnable;
1✔
2586
  }
2587

2588
  public void setRpcAdvancedCompressionEnable(boolean rpcAdvancedCompressionEnable) {
2589
    this.rpcAdvancedCompressionEnable = rpcAdvancedCompressionEnable;
1✔
2590
    RpcTransportFactory.setUseSnappy(this.rpcAdvancedCompressionEnable);
1✔
2591
  }
1✔
2592

2593
  public int getMlogBufferSize() {
2594
    return mlogBufferSize;
1✔
2595
  }
2596

2597
  public void setMlogBufferSize(int mlogBufferSize) {
2598
    this.mlogBufferSize = mlogBufferSize;
1✔
2599
  }
1✔
2600

2601
  public long getSyncMlogPeriodInMs() {
2602
    return syncMlogPeriodInMs;
1✔
2603
  }
2604

2605
  public void setSyncMlogPeriodInMs(long syncMlogPeriodInMs) {
2606
    this.syncMlogPeriodInMs = syncMlogPeriodInMs;
1✔
2607
  }
1✔
2608

2609
  public int getTlogBufferSize() {
2610
    return tlogBufferSize;
1✔
2611
  }
2612

2613
  public void setTlogBufferSize(int tlogBufferSize) {
2614
    this.tlogBufferSize = tlogBufferSize;
1✔
2615
  }
1✔
2616

2617
  public boolean isEnableRpcService() {
2618
    return enableRpcService;
×
2619
  }
2620

2621
  public void setEnableRpcService(boolean enableRpcService) {
2622
    this.enableRpcService = enableRpcService;
×
2623
  }
×
2624

2625
  public int getIoTaskQueueSizeForFlushing() {
2626
    return ioTaskQueueSizeForFlushing;
1✔
2627
  }
2628

2629
  public void setIoTaskQueueSizeForFlushing(int ioTaskQueueSizeForFlushing) {
2630
    this.ioTaskQueueSizeForFlushing = ioTaskQueueSizeForFlushing;
1✔
2631
  }
1✔
2632

2633
  public boolean isEnableSeqSpaceCompaction() {
2634
    return enableSeqSpaceCompaction;
1✔
2635
  }
2636

2637
  public void setEnableSeqSpaceCompaction(boolean enableSeqSpaceCompaction) {
2638
    this.enableSeqSpaceCompaction = enableSeqSpaceCompaction;
1✔
2639
  }
1✔
2640

2641
  public boolean isEnableUnseqSpaceCompaction() {
2642
    return enableUnseqSpaceCompaction;
1✔
2643
  }
2644

2645
  public void setEnableUnseqSpaceCompaction(boolean enableUnseqSpaceCompaction) {
2646
    this.enableUnseqSpaceCompaction = enableUnseqSpaceCompaction;
1✔
2647
  }
1✔
2648

2649
  public boolean isEnableCrossSpaceCompaction() {
2650
    return enableCrossSpaceCompaction;
1✔
2651
  }
2652

2653
  public void setEnableCrossSpaceCompaction(boolean enableCrossSpaceCompaction) {
2654
    this.enableCrossSpaceCompaction = enableCrossSpaceCompaction;
1✔
2655
  }
1✔
2656

2657
  public boolean isEnableMLNodeService() {
2658
    return enableMLNodeService;
1✔
2659
  }
2660

2661
  public void setEnableMLNodeService(boolean enableMLNodeService) {
2662
    this.enableMLNodeService = enableMLNodeService;
1✔
2663
  }
1✔
2664

2665
  public InnerSequenceCompactionSelector getInnerSequenceCompactionSelector() {
2666
    return innerSequenceCompactionSelector;
1✔
2667
  }
2668

2669
  public void setInnerSequenceCompactionSelector(
2670
      InnerSequenceCompactionSelector innerSequenceCompactionSelector) {
2671
    this.innerSequenceCompactionSelector = innerSequenceCompactionSelector;
1✔
2672
  }
1✔
2673

2674
  public InnerUnsequenceCompactionSelector getInnerUnsequenceCompactionSelector() {
2675
    return innerUnsequenceCompactionSelector;
1✔
2676
  }
2677

2678
  public void setInnerUnsequenceCompactionSelector(
2679
      InnerUnsequenceCompactionSelector innerUnsequenceCompactionSelector) {
2680
    this.innerUnsequenceCompactionSelector = innerUnsequenceCompactionSelector;
1✔
2681
  }
1✔
2682

2683
  public InnerSeqCompactionPerformer getInnerSeqCompactionPerformer() {
2684
    return innerSeqCompactionPerformer;
1✔
2685
  }
2686

2687
  public void setInnerSeqCompactionPerformer(
2688
      InnerSeqCompactionPerformer innerSeqCompactionPerformer) {
2689
    this.innerSeqCompactionPerformer = innerSeqCompactionPerformer;
1✔
2690
  }
1✔
2691

2692
  public InnerUnseqCompactionPerformer getInnerUnseqCompactionPerformer() {
2693
    return innerUnseqCompactionPerformer;
1✔
2694
  }
2695

2696
  public void setInnerUnseqCompactionPerformer(
2697
      InnerUnseqCompactionPerformer innerUnseqCompactionPerformer) {
2698
    this.innerUnseqCompactionPerformer = innerUnseqCompactionPerformer;
1✔
2699
  }
1✔
2700

2701
  public CrossCompactionSelector getCrossCompactionSelector() {
2702
    return crossCompactionSelector;
1✔
2703
  }
2704

2705
  public void setCrossCompactionSelector(CrossCompactionSelector crossCompactionSelector) {
2706
    this.crossCompactionSelector = crossCompactionSelector;
1✔
2707
  }
1✔
2708

2709
  public CrossCompactionPerformer getCrossCompactionPerformer() {
2710
    return crossCompactionPerformer;
1✔
2711
  }
2712

2713
  public void setCrossCompactionPerformer(CrossCompactionPerformer crossCompactionPerformer) {
2714
    this.crossCompactionPerformer = crossCompactionPerformer;
1✔
2715
  }
1✔
2716

2717
  public CompactionPriority getCompactionPriority() {
2718
    return compactionPriority;
1✔
2719
  }
2720

2721
  public void setCompactionPriority(CompactionPriority compactionPriority) {
2722
    this.compactionPriority = compactionPriority;
1✔
2723
  }
1✔
2724

2725
  public boolean isEnableCompactionMemControl() {
2726
    return enableCompactionMemControl;
1✔
2727
  }
2728

2729
  public void setEnableCompactionMemControl(boolean enableCompactionMemControl) {
2730
    this.enableCompactionMemControl = enableCompactionMemControl;
1✔
2731
  }
1✔
2732

2733
  public long getTargetCompactionFileSize() {
2734
    return targetCompactionFileSize;
1✔
2735
  }
2736

2737
  public void setTargetCompactionFileSize(long targetCompactionFileSize) {
2738
    this.targetCompactionFileSize = targetCompactionFileSize;
1✔
2739
  }
1✔
2740

2741
  public long getTargetChunkSize() {
2742
    return targetChunkSize;
1✔
2743
  }
2744

2745
  public void setTargetChunkSize(long targetChunkSize) {
2746
    this.targetChunkSize = targetChunkSize;
1✔
2747
  }
1✔
2748

2749
  public long getChunkSizeLowerBoundInCompaction() {
2750
    return chunkSizeLowerBoundInCompaction;
1✔
2751
  }
2752

2753
  public void setChunkSizeLowerBoundInCompaction(long chunkSizeLowerBoundInCompaction) {
2754
    this.chunkSizeLowerBoundInCompaction = chunkSizeLowerBoundInCompaction;
1✔
2755
  }
1✔
2756

2757
  public long getTargetChunkPointNum() {
2758
    return targetChunkPointNum;
1✔
2759
  }
2760

2761
  public void setTargetChunkPointNum(long targetChunkPointNum) {
2762
    this.targetChunkPointNum = targetChunkPointNum;
1✔
2763
  }
1✔
2764

2765
  public long getChunkPointNumLowerBoundInCompaction() {
2766
    return chunkPointNumLowerBoundInCompaction;
1✔
2767
  }
2768

2769
  public void setChunkPointNumLowerBoundInCompaction(long chunkPointNumLowerBoundInCompaction) {
2770
    this.chunkPointNumLowerBoundInCompaction = chunkPointNumLowerBoundInCompaction;
1✔
2771
  }
1✔
2772

2773
  public long getCompactionAcquireWriteLockTimeout() {
2774
    return compactionAcquireWriteLockTimeout;
×
2775
  }
2776

2777
  public void setCompactionAcquireWriteLockTimeout(long compactionAcquireWriteLockTimeout) {
2778
    this.compactionAcquireWriteLockTimeout = compactionAcquireWriteLockTimeout;
×
2779
  }
×
2780

2781
  public long getCompactionScheduleIntervalInMs() {
2782
    return compactionScheduleIntervalInMs;
1✔
2783
  }
2784

2785
  public void setCompactionScheduleIntervalInMs(long compactionScheduleIntervalInMs) {
2786
    this.compactionScheduleIntervalInMs = compactionScheduleIntervalInMs;
1✔
2787
  }
1✔
2788

2789
  public int getFileLimitPerInnerTask() {
2790
    return fileLimitPerInnerTask;
1✔
2791
  }
2792

2793
  public void setFileLimitPerInnerTask(int fileLimitPerInnerTask) {
2794
    this.fileLimitPerInnerTask = fileLimitPerInnerTask;
1✔
2795
  }
1✔
2796

2797
  public int getFileLimitPerCrossTask() {
2798
    return fileLimitPerCrossTask;
1✔
2799
  }
2800

2801
  public int getTotalFileLimitForCrossTask() {
2802
    return totalFileLimitForCrossTask;
1✔
2803
  }
2804

2805
  public void setFileLimitPerCrossTask(int fileLimitPerCrossTask) {
2806
    this.fileLimitPerCrossTask = fileLimitPerCrossTask;
1✔
2807
  }
1✔
2808

2809
  public long getMaxCrossCompactionCandidateFileSize() {
2810
    return maxCrossCompactionCandidateFileSize;
1✔
2811
  }
2812

2813
  public void setMaxCrossCompactionCandidateFileSize(long maxCrossCompactionCandidateFileSize) {
2814
    this.maxCrossCompactionCandidateFileSize = maxCrossCompactionCandidateFileSize;
1✔
2815
  }
1✔
2816

2817
  public int getMinCrossCompactionUnseqFileLevel() {
2818
    return minCrossCompactionUnseqFileLevel;
1✔
2819
  }
2820

2821
  public void setMinCrossCompactionUnseqFileLevel(int minCrossCompactionUnseqFileLevel) {
2822
    this.minCrossCompactionUnseqFileLevel = minCrossCompactionUnseqFileLevel;
1✔
2823
  }
1✔
2824

2825
  public long getCompactionSubmissionIntervalInMs() {
2826
    return compactionSubmissionIntervalInMs;
1✔
2827
  }
2828

2829
  public void setCompactionSubmissionIntervalInMs(long interval) {
2830
    compactionSubmissionIntervalInMs = interval;
1✔
2831
  }
1✔
2832

2833
  public int getSubCompactionTaskNum() {
2834
    return subCompactionTaskNum;
1✔
2835
  }
2836

2837
  public void setSubCompactionTaskNum(int subCompactionTaskNum) {
2838
    this.subCompactionTaskNum = subCompactionTaskNum;
1✔
2839
  }
1✔
2840

2841
  public int getCachedMNodeSizeInPBTreeMode() {
2842
    return cachedMNodeSizeInPBTreeMode;
1✔
2843
  }
2844

2845
  @TestOnly
2846
  public void setCachedMNodeSizeInPBTreeMode(int cachedMNodeSizeInPBTreeMode) {
2847
    this.cachedMNodeSizeInPBTreeMode = cachedMNodeSizeInPBTreeMode;
1✔
2848
  }
1✔
2849

2850
  public short getMinimumSegmentInPBTree() {
2851
    return minimumSegmentInPBTree;
1✔
2852
  }
2853

2854
  public void setMinimumSegmentInPBTree(short minimumSegmentInPBTree) {
2855
    this.minimumSegmentInPBTree = minimumSegmentInPBTree;
1✔
2856
  }
1✔
2857

2858
  public int getPageCacheSizeInPBTree() {
2859
    return pageCacheSizeInPBTree;
1✔
2860
  }
2861

2862
  public void setPageCacheSizeInPBTree(int pageCacheSizeInPBTree) {
2863
    this.pageCacheSizeInPBTree = pageCacheSizeInPBTree;
1✔
2864
  }
1✔
2865

2866
  public int getPBTreeLogSize() {
2867
    return pbTreeLogSize;
1✔
2868
  }
2869

2870
  public void setPBTreeLogSize(int pbTreeLogSize) {
2871
    this.pbTreeLogSize = pbTreeLogSize;
1✔
2872
  }
1✔
2873

2874
  public int getMaxMeasurementNumOfInternalRequest() {
2875
    return maxMeasurementNumOfInternalRequest;
1✔
2876
  }
2877

2878
  public void setMaxMeasurementNumOfInternalRequest(int maxMeasurementNumOfInternalRequest) {
2879
    this.maxMeasurementNumOfInternalRequest = maxMeasurementNumOfInternalRequest;
1✔
2880
  }
1✔
2881

2882
  public String getInternalAddress() {
2883
    return internalAddress;
1✔
2884
  }
2885

2886
  public void setInternalAddress(String internalAddress) {
2887
    this.internalAddress = internalAddress;
1✔
2888
  }
1✔
2889

2890
  public int getInternalPort() {
2891
    return internalPort;
1✔
2892
  }
2893

2894
  public void setInternalPort(int internalPort) {
2895
    this.internalPort = internalPort;
1✔
2896
  }
1✔
2897

2898
  public int getMLNodePort() {
2899
    return mlNodePort;
1✔
2900
  }
2901

2902
  public void setMLNodePort(int mlNodePort) {
2903
    this.mlNodePort = mlNodePort;
1✔
2904
  }
1✔
2905

2906
  public int getDataRegionConsensusPort() {
2907
    return dataRegionConsensusPort;
1✔
2908
  }
2909

2910
  public void setDataRegionConsensusPort(int dataRegionConsensusPort) {
2911
    this.dataRegionConsensusPort = dataRegionConsensusPort;
1✔
2912
  }
1✔
2913

2914
  public int getSchemaRegionConsensusPort() {
2915
    return schemaRegionConsensusPort;
1✔
2916
  }
2917

2918
  public void setSchemaRegionConsensusPort(int schemaRegionConsensusPort) {
2919
    this.schemaRegionConsensusPort = schemaRegionConsensusPort;
1✔
2920
  }
1✔
2921

2922
  public List<TEndPoint> getTargetConfigNodeList() {
2923
    return targetConfigNodeList;
×
2924
  }
2925

2926
  public void setTargetConfigNodeList(List<TEndPoint> targetConfigNodeList) {
2927
    this.targetConfigNodeList = targetConfigNodeList;
×
2928
  }
×
2929

2930
  public long getJoinClusterRetryIntervalMs() {
2931
    return joinClusterRetryIntervalMs;
1✔
2932
  }
2933

2934
  public void setJoinClusterRetryIntervalMs(long joinClusterRetryIntervalMs) {
2935
    this.joinClusterRetryIntervalMs = joinClusterRetryIntervalMs;
1✔
2936
  }
1✔
2937

2938
  public String getDataRegionConsensusProtocolClass() {
2939
    return dataRegionConsensusProtocolClass;
1✔
2940
  }
2941

2942
  public void setDataRegionConsensusProtocolClass(String dataRegionConsensusProtocolClass) {
2943
    this.dataRegionConsensusProtocolClass = dataRegionConsensusProtocolClass;
×
2944
  }
×
2945

2946
  public String getSchemaRegionConsensusProtocolClass() {
2947
    return schemaRegionConsensusProtocolClass;
1✔
2948
  }
2949

2950
  public void setSchemaRegionConsensusProtocolClass(String schemaRegionConsensusProtocolClass) {
2951
    this.schemaRegionConsensusProtocolClass = schemaRegionConsensusProtocolClass;
1✔
2952
  }
1✔
2953

2954
  public String getSeriesPartitionExecutorClass() {
2955
    return seriesPartitionExecutorClass;
1✔
2956
  }
2957

2958
  public void setSeriesPartitionExecutorClass(String seriesPartitionExecutorClass) {
2959
    this.seriesPartitionExecutorClass = seriesPartitionExecutorClass;
×
2960
  }
×
2961

2962
  public int getSeriesPartitionSlotNum() {
2963
    return seriesPartitionSlotNum;
1✔
2964
  }
2965

2966
  public void setSeriesPartitionSlotNum(int seriesPartitionSlotNum) {
2967
    this.seriesPartitionSlotNum = seriesPartitionSlotNum;
×
2968
  }
×
2969

2970
  public int getMppDataExchangePort() {
2971
    return mppDataExchangePort;
1✔
2972
  }
2973

2974
  public void setMppDataExchangePort(int mppDataExchangePort) {
2975
    this.mppDataExchangePort = mppDataExchangePort;
1✔
2976
  }
1✔
2977

2978
  public int getMppDataExchangeCorePoolSize() {
2979
    return mppDataExchangeCorePoolSize;
1✔
2980
  }
2981

2982
  public void setMppDataExchangeCorePoolSize(int mppDataExchangeCorePoolSize) {
2983
    this.mppDataExchangeCorePoolSize = mppDataExchangeCorePoolSize;
1✔
2984
  }
1✔
2985

2986
  public int getMppDataExchangeMaxPoolSize() {
2987
    return mppDataExchangeMaxPoolSize;
1✔
2988
  }
2989

2990
  public void setMppDataExchangeMaxPoolSize(int mppDataExchangeMaxPoolSize) {
2991
    this.mppDataExchangeMaxPoolSize = mppDataExchangeMaxPoolSize;
1✔
2992
  }
1✔
2993

2994
  public int getMppDataExchangeKeepAliveTimeInMs() {
2995
    return mppDataExchangeKeepAliveTimeInMs;
1✔
2996
  }
2997

2998
  public void setMppDataExchangeKeepAliveTimeInMs(int mppDataExchangeKeepAliveTimeInMs) {
2999
    this.mppDataExchangeKeepAliveTimeInMs = mppDataExchangeKeepAliveTimeInMs;
1✔
3000
  }
1✔
3001

3002
  public int getConnectionTimeoutInMS() {
3003
    return connectionTimeoutInMS;
1✔
3004
  }
3005

3006
  public void setConnectionTimeoutInMS(int connectionTimeoutInMS) {
3007
    this.connectionTimeoutInMS = connectionTimeoutInMS;
1✔
3008
  }
1✔
3009

3010
  public int getMaxClientNumForEachNode() {
3011
    return maxClientNumForEachNode;
1✔
3012
  }
3013

3014
  public void setMaxClientNumForEachNode(int maxClientNumForEachNode) {
3015
    this.maxClientNumForEachNode = maxClientNumForEachNode;
1✔
3016
  }
1✔
3017

3018
  public int getCoreClientNumForEachNode() {
3019
    return coreClientNumForEachNode;
1✔
3020
  }
3021

3022
  public void setCoreClientNumForEachNode(int coreClientNumForEachNode) {
3023
    this.coreClientNumForEachNode = coreClientNumForEachNode;
1✔
3024
  }
1✔
3025

3026
  public int getSelectorNumOfClientManager() {
3027
    return selectorNumOfClientManager;
1✔
3028
  }
3029

3030
  public void setSelectorNumOfClientManager(int selectorNumOfClientManager) {
3031
    this.selectorNumOfClientManager = selectorNumOfClientManager;
1✔
3032
  }
1✔
3033

3034
  public boolean isClusterMode() {
3035
    return isClusterMode;
1✔
3036
  }
3037

3038
  public void setClusterMode(boolean isClusterMode) {
3039
    this.isClusterMode = isClusterMode;
1✔
3040
    checkMultiDirStrategyClassName();
1✔
3041
  }
1✔
3042

3043
  public String getClusterName() {
3044
    return clusterName;
1✔
3045
  }
3046

3047
  public void setClusterName(String clusterName) {
3048
    this.clusterName = clusterName;
1✔
3049
  }
1✔
3050

3051
  public int getDataNodeId() {
3052
    return dataNodeId;
1✔
3053
  }
3054

3055
  public void setDataNodeId(int dataNodeId) {
3056
    this.dataNodeId = dataNodeId;
1✔
3057
  }
1✔
3058

3059
  public int getPartitionCacheSize() {
3060
    return partitionCacheSize;
1✔
3061
  }
3062

3063
  public String getExtPipeDir() {
3064
    return extPipeDir;
1✔
3065
  }
3066

3067
  public void setExtPipeDir(String extPipeDir) {
3068
    this.extPipeDir = extPipeDir;
1✔
3069
  }
1✔
3070

3071
  public void setPartitionCacheSize(int partitionCacheSize) {
3072
    this.partitionCacheSize = partitionCacheSize;
1✔
3073
  }
1✔
3074

3075
  public int getDevicePathCacheSize() {
3076
    return devicePathCacheSize;
1✔
3077
  }
3078

3079
  public void setDevicePathCacheSize(int devicePathCacheSize) {
3080
    this.devicePathCacheSize = devicePathCacheSize;
1✔
3081
  }
1✔
3082

3083
  public int getAuthorCacheSize() {
3084
    return authorCacheSize;
1✔
3085
  }
3086

3087
  public void setAuthorCacheSize(int authorCacheSize) {
3088
    this.authorCacheSize = authorCacheSize;
1✔
3089
  }
1✔
3090

3091
  public int getAuthorCacheExpireTime() {
3092
    return authorCacheExpireTime;
1✔
3093
  }
3094

3095
  public void setAuthorCacheExpireTime(int authorCacheExpireTime) {
3096
    this.authorCacheExpireTime = authorCacheExpireTime;
1✔
3097
  }
1✔
3098

3099
  public int getTriggerForwardMaxQueueNumber() {
3100
    return triggerForwardMaxQueueNumber;
1✔
3101
  }
3102

3103
  public void setTriggerForwardMaxQueueNumber(int triggerForwardMaxQueueNumber) {
3104
    this.triggerForwardMaxQueueNumber = triggerForwardMaxQueueNumber;
1✔
3105
  }
1✔
3106

3107
  public int getTriggerForwardMaxSizePerQueue() {
3108
    return triggerForwardMaxSizePerQueue;
1✔
3109
  }
3110

3111
  public void setTriggerForwardMaxSizePerQueue(int triggerForwardMaxSizePerQueue) {
3112
    this.triggerForwardMaxSizePerQueue = triggerForwardMaxSizePerQueue;
1✔
3113
  }
1✔
3114

3115
  public int getTriggerForwardBatchSize() {
3116
    return triggerForwardBatchSize;
1✔
3117
  }
3118

3119
  public void setTriggerForwardBatchSize(int triggerForwardBatchSize) {
3120
    this.triggerForwardBatchSize = triggerForwardBatchSize;
1✔
3121
  }
1✔
3122

3123
  public int getTriggerForwardHTTPPoolSize() {
3124
    return triggerForwardHTTPPoolSize;
1✔
3125
  }
3126

3127
  public void setTriggerForwardHTTPPoolSize(int triggerForwardHTTPPoolSize) {
3128
    this.triggerForwardHTTPPoolSize = triggerForwardHTTPPoolSize;
1✔
3129
  }
1✔
3130

3131
  public int getTriggerForwardHTTPPOOLMaxPerRoute() {
3132
    return triggerForwardHTTPPOOLMaxPerRoute;
1✔
3133
  }
3134

3135
  public void setTriggerForwardHTTPPOOLMaxPerRoute(int triggerForwardHTTPPOOLMaxPerRoute) {
3136
    this.triggerForwardHTTPPOOLMaxPerRoute = triggerForwardHTTPPOOLMaxPerRoute;
1✔
3137
  }
1✔
3138

3139
  public int getTriggerForwardMQTTPoolSize() {
3140
    return triggerForwardMQTTPoolSize;
1✔
3141
  }
3142

3143
  public void setTriggerForwardMQTTPoolSize(int triggerForwardMQTTPoolSize) {
3144
    this.triggerForwardMQTTPoolSize = triggerForwardMQTTPoolSize;
1✔
3145
  }
1✔
3146

3147
  public int getRetryNumToFindStatefulTrigger() {
3148
    return retryNumToFindStatefulTrigger;
1✔
3149
  }
3150

3151
  public void setRetryNumToFindStatefulTrigger(int retryNumToFindStatefulTrigger) {
3152
    this.retryNumToFindStatefulTrigger = retryNumToFindStatefulTrigger;
1✔
3153
  }
1✔
3154

3155
  public int getCoordinatorReadExecutorSize() {
3156
    return coordinatorReadExecutorSize;
1✔
3157
  }
3158

3159
  public void setCoordinatorReadExecutorSize(int coordinatorReadExecutorSize) {
3160
    this.coordinatorReadExecutorSize = coordinatorReadExecutorSize;
1✔
3161
  }
1✔
3162

3163
  public int getCoordinatorWriteExecutorSize() {
3164
    return coordinatorWriteExecutorSize;
1✔
3165
  }
3166

3167
  public void setCoordinatorWriteExecutorSize(int coordinatorWriteExecutorSize) {
3168
    this.coordinatorWriteExecutorSize = coordinatorWriteExecutorSize;
1✔
3169
  }
1✔
3170

3171
  public TEndPoint getAddressAndPort() {
3172
    return new TEndPoint(rpcAddress, rpcPort);
×
3173
  }
3174

3175
  public int[] getSchemaMemoryProportion() {
3176
    return schemaMemoryProportion;
1✔
3177
  }
3178

3179
  public void setSchemaMemoryProportion(int[] schemaMemoryProportion) {
3180
    this.schemaMemoryProportion = schemaMemoryProportion;
×
3181
  }
×
3182

3183
  public long getAllocateMemoryForSchemaRegion() {
3184
    return allocateMemoryForSchemaRegion;
1✔
3185
  }
3186

3187
  public void setAllocateMemoryForSchemaRegion(long allocateMemoryForSchemaRegion) {
3188
    this.allocateMemoryForSchemaRegion = allocateMemoryForSchemaRegion;
1✔
3189
  }
1✔
3190

3191
  public long getAllocateMemoryForSchemaCache() {
3192
    return allocateMemoryForSchemaCache;
1✔
3193
  }
3194

3195
  public void setAllocateMemoryForSchemaCache(long allocateMemoryForSchemaCache) {
3196
    this.allocateMemoryForSchemaCache = allocateMemoryForSchemaCache;
1✔
3197
  }
1✔
3198

3199
  public long getAllocateMemoryForPartitionCache() {
3200
    return allocateMemoryForPartitionCache;
1✔
3201
  }
3202

3203
  public void setAllocateMemoryForPartitionCache(long allocateMemoryForPartitionCache) {
3204
    this.allocateMemoryForPartitionCache = allocateMemoryForPartitionCache;
1✔
3205
  }
1✔
3206

3207
  public String getDataNodeSchemaCacheEvictionPolicy() {
3208
    return dataNodeSchemaCacheEvictionPolicy;
1✔
3209
  }
3210

3211
  public void setDataNodeSchemaCacheEvictionPolicy(String dataNodeSchemaCacheEvictionPolicy) {
3212
    this.dataNodeSchemaCacheEvictionPolicy = dataNodeSchemaCacheEvictionPolicy;
1✔
3213
  }
1✔
3214

3215
  public String getReadConsistencyLevel() {
3216
    return readConsistencyLevel;
1✔
3217
  }
3218

3219
  public void setReadConsistencyLevel(String readConsistencyLevel) {
3220
    this.readConsistencyLevel = readConsistencyLevel;
×
3221
  }
×
3222

3223
  public int getDriverTaskExecutionTimeSliceInMs() {
3224
    return driverTaskExecutionTimeSliceInMs;
1✔
3225
  }
3226

3227
  public void setDriverTaskExecutionTimeSliceInMs(int driverTaskExecutionTimeSliceInMs) {
3228
    this.driverTaskExecutionTimeSliceInMs = driverTaskExecutionTimeSliceInMs;
1✔
3229
  }
1✔
3230

3231
  public double getWriteProportionForMemtable() {
3232
    return writeProportionForMemtable;
1✔
3233
  }
3234

3235
  public void setWriteProportionForMemtable(double writeProportionForMemtable) {
3236
    this.writeProportionForMemtable = writeProportionForMemtable;
×
3237
  }
×
3238

3239
  public double getCompactionProportion() {
3240
    return compactionProportion;
1✔
3241
  }
3242

3243
  public double getLoadTsFileProportion() {
3244
    return loadTsFileProportion;
1✔
3245
  }
3246

3247
  public int getMaxLoadingTimeseriesNumber() {
3248
    return maxLoadingTimeseriesNumber;
1✔
3249
  }
3250

3251
  public void setMaxLoadingTimeseriesNumber(int maxLoadingTimeseriesNumber) {
3252
    this.maxLoadingTimeseriesNumber = maxLoadingTimeseriesNumber;
1✔
3253
  }
1✔
3254

3255
  public static String getEnvironmentVariables() {
3256
    return "\n\t"
×
3257
        + IoTDBConstant.IOTDB_HOME
3258
        + "="
3259
        + System.getProperty(IoTDBConstant.IOTDB_HOME, "null")
×
3260
        + ";"
3261
        + "\n\t"
3262
        + IoTDBConstant.IOTDB_CONF
3263
        + "="
3264
        + System.getProperty(IoTDBConstant.IOTDB_CONF, "null")
×
3265
        + ";"
3266
        + "\n\t"
3267
        + IoTDBConstant.IOTDB_DATA_HOME
3268
        + "="
3269
        + System.getProperty(IoTDBConstant.IOTDB_DATA_HOME, "null")
×
3270
        + ";";
3271
  }
3272

3273
  public void setCompactionProportion(double compactionProportion) {
3274
    this.compactionProportion = compactionProportion;
×
3275
  }
×
3276

3277
  public long getThrottleThreshold() {
3278
    return throttleThreshold;
1✔
3279
  }
3280

3281
  public void setThrottleThreshold(long throttleThreshold) {
3282
    this.throttleThreshold = throttleThreshold;
1✔
3283
  }
1✔
3284

3285
  public double getChunkMetadataSizeProportion() {
3286
    return chunkMetadataSizeProportion;
1✔
3287
  }
3288

3289
  public void setChunkMetadataSizeProportion(double chunkMetadataSizeProportion) {
3290
    this.chunkMetadataSizeProportion = chunkMetadataSizeProportion;
1✔
3291
  }
1✔
3292

3293
  public long getCacheWindowTimeInMs() {
3294
    return cacheWindowTimeInMs;
1✔
3295
  }
3296

3297
  public void setCacheWindowTimeInMs(long cacheWindowTimeInMs) {
3298
    this.cacheWindowTimeInMs = cacheWindowTimeInMs;
1✔
3299
  }
1✔
3300

3301
  public long getDataRatisConsensusLogAppenderBufferSizeMax() {
3302
    return dataRatisConsensusLogAppenderBufferSizeMax;
1✔
3303
  }
3304

3305
  public void setDataRatisConsensusLogAppenderBufferSizeMax(
3306
      long dataRatisConsensusLogAppenderBufferSizeMax) {
3307
    this.dataRatisConsensusLogAppenderBufferSizeMax = dataRatisConsensusLogAppenderBufferSizeMax;
×
3308
  }
×
3309

3310
  public String getConfigMessage() {
3311
    StringBuilder configMessage = new StringBuilder();
×
3312
    String configContent;
3313
    String[] notShowArray = {
×
3314
      "NODE_NAME_MATCHER",
3315
      "PARTIAL_NODE_MATCHER",
3316
      "STORAGE_GROUP_MATCHER",
3317
      "STORAGE_GROUP_PATTERN",
3318
      "NODE_MATCHER",
3319
      "NODE_PATTERN"
3320
    };
3321
    List<String> notShowStrings = Arrays.asList(notShowArray);
×
3322
    for (Field configField : IoTDBConfig.class.getDeclaredFields()) {
×
3323
      try {
3324
        String configFieldString = configField.getName();
×
3325
        if (notShowStrings.contains(configFieldString)) {
×
3326
          continue;
×
3327
        }
3328
        String configType = configField.getGenericType().getTypeName();
×
3329
        if (configType.contains("java.lang.String[][]")) {
×
3330
          String[][] configList = (String[][]) configField.get(this);
×
3331
          StringBuilder builder = new StringBuilder();
×
3332
          for (String[] strings : configList) {
×
3333
            builder.append(Arrays.asList(strings)).append(";");
×
3334
          }
3335
          configContent = builder.toString();
×
3336
        } else if (configType.contains("java.lang.String[]")) {
×
3337
          String[] configList = (String[]) configField.get(this);
×
3338
          configContent = Arrays.asList(configList).toString();
×
3339
        } else {
×
3340
          configContent = configField.get(this).toString();
×
3341
        }
3342
        configMessage
×
3343
            .append("\n\t")
×
3344
            .append(configField.getName())
×
3345
            .append("=")
×
3346
            .append(configContent)
×
3347
            .append(";");
×
3348
      } catch (Exception e) {
×
3349
        e.printStackTrace();
×
3350
      }
×
3351
    }
3352
    return configMessage.toString();
×
3353
  }
3354

3355
  public long getDataRatisConsensusSnapshotTriggerThreshold() {
3356
    return dataRatisConsensusSnapshotTriggerThreshold;
1✔
3357
  }
3358

3359
  public void setDataRatisConsensusSnapshotTriggerThreshold(
3360
      long dataRatisConsensusSnapshotTriggerThreshold) {
3361
    this.dataRatisConsensusSnapshotTriggerThreshold = dataRatisConsensusSnapshotTriggerThreshold;
×
3362
  }
×
3363

3364
  public boolean isDataRatisConsensusLogUnsafeFlushEnable() {
3365
    return dataRatisConsensusLogUnsafeFlushEnable;
1✔
3366
  }
3367

3368
  public void setDataRatisConsensusLogUnsafeFlushEnable(
3369
      boolean dataRatisConsensusLogUnsafeFlushEnable) {
3370
    this.dataRatisConsensusLogUnsafeFlushEnable = dataRatisConsensusLogUnsafeFlushEnable;
×
3371
  }
×
3372

3373
  public int getDataRatisConsensusLogForceSyncNum() {
3374
    return dataRatisConsensusLogForceSyncNum;
1✔
3375
  }
3376

3377
  public void setDataRatisConsensusLogForceSyncNum(int dataRatisConsensusLogForceSyncNum) {
3378
    this.dataRatisConsensusLogForceSyncNum = dataRatisConsensusLogForceSyncNum;
×
3379
  }
×
3380

3381
  public int getSchemaRatisConsensusLogForceSyncNum() {
3382
    return schemaRatisConsensusLogForceSyncNum;
1✔
3383
  }
3384

3385
  public void setSchemaRatisConsensusLogForceSyncNum(int schemaRatisConsensusLogForceSyncNum) {
3386
    this.schemaRatisConsensusLogForceSyncNum = schemaRatisConsensusLogForceSyncNum;
×
3387
  }
×
3388

3389
  public long getDataRatisConsensusLogSegmentSizeMax() {
3390
    return dataRatisConsensusLogSegmentSizeMax;
1✔
3391
  }
3392

3393
  public void setDataRatisConsensusLogSegmentSizeMax(long dataRatisConsensusLogSegmentSizeMax) {
3394
    this.dataRatisConsensusLogSegmentSizeMax = dataRatisConsensusLogSegmentSizeMax;
×
3395
  }
×
3396

3397
  public long getDataRatisConsensusGrpcFlowControlWindow() {
3398
    return dataRatisConsensusGrpcFlowControlWindow;
1✔
3399
  }
3400

3401
  public void setDataRatisConsensusGrpcFlowControlWindow(
3402
      long dataRatisConsensusGrpcFlowControlWindow) {
3403
    this.dataRatisConsensusGrpcFlowControlWindow = dataRatisConsensusGrpcFlowControlWindow;
×
3404
  }
×
3405

3406
  public int getDataRatisConsensusGrpcLeaderOutstandingAppendsMax() {
3407
    return dataRatisConsensusGrpcLeaderOutstandingAppendsMax;
1✔
3408
  }
3409

3410
  public void setDataRatisConsensusGrpcLeaderOutstandingAppendsMax(
3411
      int dataRatisConsensusGrpcLeaderOutstandingAppendsMax) {
3412
    this.dataRatisConsensusGrpcLeaderOutstandingAppendsMax =
×
3413
        dataRatisConsensusGrpcLeaderOutstandingAppendsMax;
3414
  }
×
3415

3416
  public int getSchemaRatisConsensusGrpcLeaderOutstandingAppendsMax() {
3417
    return schemaRatisConsensusGrpcLeaderOutstandingAppendsMax;
1✔
3418
  }
3419

3420
  public void setSchemaRatisConsensusGrpcLeaderOutstandingAppendsMax(
3421
      int schemaRatisConsensusGrpcLeaderOutstandingAppendsMax) {
3422
    this.schemaRatisConsensusGrpcLeaderOutstandingAppendsMax =
×
3423
        schemaRatisConsensusGrpcLeaderOutstandingAppendsMax;
3424
  }
×
3425

3426
  public long getDataRatisConsensusLeaderElectionTimeoutMinMs() {
3427
    return dataRatisConsensusLeaderElectionTimeoutMinMs;
1✔
3428
  }
3429

3430
  public void setDataRatisConsensusLeaderElectionTimeoutMinMs(
3431
      long dataRatisConsensusLeaderElectionTimeoutMinMs) {
3432
    this.dataRatisConsensusLeaderElectionTimeoutMinMs =
×
3433
        dataRatisConsensusLeaderElectionTimeoutMinMs;
3434
  }
×
3435

3436
  public long getDataRatisConsensusLeaderElectionTimeoutMaxMs() {
3437
    return dataRatisConsensusLeaderElectionTimeoutMaxMs;
1✔
3438
  }
3439

3440
  public void setDataRatisConsensusLeaderElectionTimeoutMaxMs(
3441
      long dataRatisConsensusLeaderElectionTimeoutMaxMs) {
3442
    this.dataRatisConsensusLeaderElectionTimeoutMaxMs =
×
3443
        dataRatisConsensusLeaderElectionTimeoutMaxMs;
3444
  }
×
3445

3446
  public long getSchemaRatisConsensusLogAppenderBufferSizeMax() {
3447
    return schemaRatisConsensusLogAppenderBufferSizeMax;
1✔
3448
  }
3449

3450
  public void setSchemaRatisConsensusLogAppenderBufferSizeMax(
3451
      long schemaRatisConsensusLogAppenderBufferSizeMax) {
3452
    this.schemaRatisConsensusLogAppenderBufferSizeMax =
×
3453
        schemaRatisConsensusLogAppenderBufferSizeMax;
3454
  }
×
3455

3456
  public long getSchemaRatisConsensusSnapshotTriggerThreshold() {
3457
    return schemaRatisConsensusSnapshotTriggerThreshold;
1✔
3458
  }
3459

3460
  public void setSchemaRatisConsensusSnapshotTriggerThreshold(
3461
      long schemaRatisConsensusSnapshotTriggerThreshold) {
3462
    this.schemaRatisConsensusSnapshotTriggerThreshold =
×
3463
        schemaRatisConsensusSnapshotTriggerThreshold;
3464
  }
×
3465

3466
  public boolean isSchemaRatisConsensusLogUnsafeFlushEnable() {
3467
    return schemaRatisConsensusLogUnsafeFlushEnable;
1✔
3468
  }
3469

3470
  public void setSchemaRatisConsensusLogUnsafeFlushEnable(
3471
      boolean schemaRatisConsensusLogUnsafeFlushEnable) {
3472
    this.schemaRatisConsensusLogUnsafeFlushEnable = schemaRatisConsensusLogUnsafeFlushEnable;
×
3473
  }
×
3474

3475
  public long getSchemaRatisConsensusLogSegmentSizeMax() {
3476
    return schemaRatisConsensusLogSegmentSizeMax;
1✔
3477
  }
3478

3479
  public void setSchemaRatisConsensusLogSegmentSizeMax(long schemaRatisConsensusLogSegmentSizeMax) {
3480
    this.schemaRatisConsensusLogSegmentSizeMax = schemaRatisConsensusLogSegmentSizeMax;
×
3481
  }
×
3482

3483
  public long getSchemaRatisConsensusGrpcFlowControlWindow() {
3484
    return schemaRatisConsensusGrpcFlowControlWindow;
1✔
3485
  }
3486

3487
  public void setSchemaRatisConsensusGrpcFlowControlWindow(
3488
      long schemaRatisConsensusGrpcFlowControlWindow) {
3489
    this.schemaRatisConsensusGrpcFlowControlWindow = schemaRatisConsensusGrpcFlowControlWindow;
×
3490
  }
×
3491

3492
  public long getSchemaRatisConsensusLeaderElectionTimeoutMinMs() {
3493
    return schemaRatisConsensusLeaderElectionTimeoutMinMs;
1✔
3494
  }
3495

3496
  public void setSchemaRatisConsensusLeaderElectionTimeoutMinMs(
3497
      long schemaRatisConsensusLeaderElectionTimeoutMinMs) {
3498
    this.schemaRatisConsensusLeaderElectionTimeoutMinMs =
×
3499
        schemaRatisConsensusLeaderElectionTimeoutMinMs;
3500
  }
×
3501

3502
  public long getSchemaRatisConsensusLeaderElectionTimeoutMaxMs() {
3503
    return schemaRatisConsensusLeaderElectionTimeoutMaxMs;
1✔
3504
  }
3505

3506
  public void setSchemaRatisConsensusLeaderElectionTimeoutMaxMs(
3507
      long schemaRatisConsensusLeaderElectionTimeoutMaxMs) {
3508
    this.schemaRatisConsensusLeaderElectionTimeoutMaxMs =
×
3509
        schemaRatisConsensusLeaderElectionTimeoutMaxMs;
3510
  }
×
3511

3512
  public long getCqMinEveryIntervalInMs() {
3513
    return cqMinEveryIntervalInMs;
×
3514
  }
3515

3516
  public void setCqMinEveryIntervalInMs(long cqMinEveryIntervalInMs) {
3517
    this.cqMinEveryIntervalInMs = cqMinEveryIntervalInMs;
×
3518
  }
×
3519

3520
  public double getUsableCompactionMemoryProportion() {
3521
    return 1.0d - chunkMetadataSizeProportion;
1✔
3522
  }
3523

3524
  public int getPatternMatchingThreshold() {
3525
    return patternMatchingThreshold;
1✔
3526
  }
3527

3528
  public void setPatternMatchingThreshold(int patternMatchingThreshold) {
3529
    this.patternMatchingThreshold = patternMatchingThreshold;
×
3530
  }
×
3531

3532
  public long getDataRatisConsensusRequestTimeoutMs() {
3533
    return dataRatisConsensusRequestTimeoutMs;
1✔
3534
  }
3535

3536
  public void setDataRatisConsensusRequestTimeoutMs(long dataRatisConsensusRequestTimeoutMs) {
3537
    this.dataRatisConsensusRequestTimeoutMs = dataRatisConsensusRequestTimeoutMs;
×
3538
  }
×
3539

3540
  public long getSchemaRatisConsensusRequestTimeoutMs() {
3541
    return schemaRatisConsensusRequestTimeoutMs;
1✔
3542
  }
3543

3544
  public void setSchemaRatisConsensusRequestTimeoutMs(long schemaRatisConsensusRequestTimeoutMs) {
3545
    this.schemaRatisConsensusRequestTimeoutMs = schemaRatisConsensusRequestTimeoutMs;
×
3546
  }
×
3547

3548
  public int getDataRatisConsensusMaxRetryAttempts() {
3549
    return dataRatisConsensusMaxRetryAttempts;
1✔
3550
  }
3551

3552
  public void setDataRatisConsensusMaxRetryAttempts(int dataRatisConsensusMaxRetryAttempts) {
3553
    this.dataRatisConsensusMaxRetryAttempts = dataRatisConsensusMaxRetryAttempts;
×
3554
  }
×
3555

3556
  public int getSchemaRatisConsensusMaxRetryAttempts() {
3557
    return schemaRatisConsensusMaxRetryAttempts;
×
3558
  }
3559

3560
  public void setSchemaRatisConsensusMaxRetryAttempts(int schemaRatisConsensusMaxRetryAttempts) {
3561
    this.schemaRatisConsensusMaxRetryAttempts = schemaRatisConsensusMaxRetryAttempts;
×
3562
  }
×
3563

3564
  public long getDataRatisConsensusInitialSleepTimeMs() {
3565
    return dataRatisConsensusInitialSleepTimeMs;
1✔
3566
  }
3567

3568
  public void setDataRatisConsensusInitialSleepTimeMs(long dataRatisConsensusInitialSleepTimeMs) {
3569
    this.dataRatisConsensusInitialSleepTimeMs = dataRatisConsensusInitialSleepTimeMs;
×
3570
  }
×
3571

3572
  public long getSchemaRatisConsensusInitialSleepTimeMs() {
3573
    return schemaRatisConsensusInitialSleepTimeMs;
×
3574
  }
3575

3576
  public void setSchemaRatisConsensusInitialSleepTimeMs(
3577
      long schemaRatisConsensusInitialSleepTimeMs) {
3578
    this.schemaRatisConsensusInitialSleepTimeMs = schemaRatisConsensusInitialSleepTimeMs;
×
3579
  }
×
3580

3581
  public long getDataRatisConsensusMaxSleepTimeMs() {
3582
    return dataRatisConsensusMaxSleepTimeMs;
1✔
3583
  }
3584

3585
  public void setDataRatisConsensusMaxSleepTimeMs(long dataRatisConsensusMaxSleepTimeMs) {
3586
    this.dataRatisConsensusMaxSleepTimeMs = dataRatisConsensusMaxSleepTimeMs;
×
3587
  }
×
3588

3589
  public long getSchemaRatisConsensusMaxSleepTimeMs() {
3590
    return schemaRatisConsensusMaxSleepTimeMs;
×
3591
  }
3592

3593
  public void setSchemaRatisConsensusMaxSleepTimeMs(long schemaRatisConsensusMaxSleepTimeMs) {
3594
    this.schemaRatisConsensusMaxSleepTimeMs = schemaRatisConsensusMaxSleepTimeMs;
×
3595
  }
×
3596

3597
  public Properties getCustomizedProperties() {
3598
    return customizedProperties;
×
3599
  }
3600

3601
  public void setCustomizedProperties(Properties customizedProperties) {
3602
    this.customizedProperties = customizedProperties;
×
3603
  }
×
3604

3605
  public long getDataRatisConsensusPreserveWhenPurge() {
3606
    return dataRatisConsensusPreserveWhenPurge;
1✔
3607
  }
3608

3609
  public void setDataRatisConsensusPreserveWhenPurge(long dataRatisConsensusPreserveWhenPurge) {
3610
    this.dataRatisConsensusPreserveWhenPurge = dataRatisConsensusPreserveWhenPurge;
×
3611
  }
×
3612

3613
  public long getSchemaRatisConsensusPreserveWhenPurge() {
3614
    return schemaRatisConsensusPreserveWhenPurge;
1✔
3615
  }
3616

3617
  public void setSchemaRatisConsensusPreserveWhenPurge(long schemaRatisConsensusPreserveWhenPurge) {
3618
    this.schemaRatisConsensusPreserveWhenPurge = schemaRatisConsensusPreserveWhenPurge;
×
3619
  }
×
3620

3621
  public long getRatisFirstElectionTimeoutMinMs() {
3622
    return ratisFirstElectionTimeoutMinMs;
1✔
3623
  }
3624

3625
  public void setRatisFirstElectionTimeoutMinMs(long ratisFirstElectionTimeoutMinMs) {
3626
    this.ratisFirstElectionTimeoutMinMs = ratisFirstElectionTimeoutMinMs;
×
3627
  }
×
3628

3629
  public long getRatisFirstElectionTimeoutMaxMs() {
3630
    return ratisFirstElectionTimeoutMaxMs;
1✔
3631
  }
3632

3633
  public void setRatisFirstElectionTimeoutMaxMs(long ratisFirstElectionTimeoutMaxMs) {
3634
    this.ratisFirstElectionTimeoutMaxMs = ratisFirstElectionTimeoutMaxMs;
×
3635
  }
×
3636

3637
  public long getDataRatisLogMax() {
3638
    return dataRatisLogMax;
1✔
3639
  }
3640

3641
  public void setDataRatisLogMax(long dataRatisLogMax) {
3642
    this.dataRatisLogMax = dataRatisLogMax;
×
3643
  }
×
3644

3645
  public long getSchemaRatisLogMax() {
3646
    return schemaRatisLogMax;
1✔
3647
  }
3648

3649
  public void setSchemaRatisLogMax(long schemaRatisLogMax) {
3650
    this.schemaRatisLogMax = schemaRatisLogMax;
×
3651
  }
×
3652

3653
  public CompactionValidationLevel getCompactionValidationLevel() {
3654
    return this.compactionValidationLevel;
1✔
3655
  }
3656

3657
  public void setCompactionValidationLevel(CompactionValidationLevel level) {
3658
    this.compactionValidationLevel = level;
1✔
3659
  }
1✔
3660

3661
  public int getCandidateCompactionTaskQueueSize() {
3662
    return candidateCompactionTaskQueueSize;
1✔
3663
  }
3664

3665
  public void setCandidateCompactionTaskQueueSize(int candidateCompactionTaskQueueSize) {
3666
    this.candidateCompactionTaskQueueSize = candidateCompactionTaskQueueSize;
1✔
3667
  }
1✔
3668

3669
  public boolean isEnableAuditLog() {
3670
    return enableAuditLog;
1✔
3671
  }
3672

3673
  public void setEnableAuditLog(boolean enableAuditLog) {
3674
    this.enableAuditLog = enableAuditLog;
×
3675
  }
×
3676

3677
  public List<AuditLogStorage> getAuditLogStorage() {
3678
    return auditLogStorage;
×
3679
  }
3680

3681
  public void setAuditLogStorage(List<AuditLogStorage> auditLogStorage) {
3682
    this.auditLogStorage = auditLogStorage;
×
3683
  }
×
3684

3685
  public List<AuditLogOperation> getAuditLogOperation() {
3686
    return auditLogOperation;
×
3687
  }
3688

3689
  public void setAuditLogOperation(List<AuditLogOperation> auditLogOperation) {
3690
    this.auditLogOperation = auditLogOperation;
×
3691
  }
×
3692

3693
  public boolean isEnableAuditLogForNativeInsertApi() {
3694
    return enableAuditLogForNativeInsertApi;
×
3695
  }
3696

3697
  public void setEnableAuditLogForNativeInsertApi(boolean enableAuditLogForNativeInsertApi) {
3698
    this.enableAuditLogForNativeInsertApi = enableAuditLogForNativeInsertApi;
×
3699
  }
×
3700

3701
  public void setModeMapSizeThreshold(int modeMapSizeThreshold) {
3702
    this.modeMapSizeThreshold = modeMapSizeThreshold;
1✔
3703
  }
1✔
3704

3705
  public int getModeMapSizeThreshold() {
3706
    return modeMapSizeThreshold;
1✔
3707
  }
3708

3709
  public void setPipeReceiverFileDir(String pipeReceiverFileDir) {
3710
    this.pipeReceiverFileDir = pipeReceiverFileDir;
1✔
3711
  }
1✔
3712

3713
  public String getPipeReceiverFileDir() {
3714
    return pipeReceiverFileDir;
1✔
3715
  }
3716

3717
  public boolean isQuotaEnable() {
3718
    return quotaEnable;
1✔
3719
  }
3720

3721
  public void setQuotaEnable(boolean quotaEnable) {
3722
    this.quotaEnable = quotaEnable;
1✔
3723
  }
1✔
3724

3725
  public String getRateLimiterType() {
3726
    return RateLimiterType;
1✔
3727
  }
3728

3729
  public void setRateLimiterType(String rateLimiterType) {
3730
    RateLimiterType = rateLimiterType;
1✔
3731
  }
1✔
3732

3733
  public void setSortBufferSize(long sortBufferSize) {
3734
    this.sortBufferSize = sortBufferSize;
1✔
3735
  }
1✔
3736

3737
  public long getSortBufferSize() {
3738
    return sortBufferSize;
1✔
3739
  }
3740

3741
  public void setSortTmpDir(String sortTmpDir) {
3742
    this.sortTmpDir = sortTmpDir;
1✔
3743
  }
1✔
3744

3745
  public String getSortTmpDir() {
3746
    return sortTmpDir;
1✔
3747
  }
3748

3749
  public String getClusterSchemaLimitLevel() {
3750
    return clusterSchemaLimitLevel;
1✔
3751
  }
3752

3753
  public void setClusterSchemaLimitLevel(String clusterSchemaLimitLevel) {
3754
    this.clusterSchemaLimitLevel = clusterSchemaLimitLevel;
1✔
3755
  }
1✔
3756

3757
  public long getClusterSchemaLimitThreshold() {
3758
    return clusterSchemaLimitThreshold;
1✔
3759
  }
3760

3761
  public void setClusterSchemaLimitThreshold(long clusterSchemaLimitThreshold) {
3762
    this.clusterSchemaLimitThreshold = clusterSchemaLimitThreshold;
1✔
3763
  }
1✔
3764

3765
  public String getObjectStorageBucket() {
3766
    throw new UnsupportedOperationException("object storage is not supported yet");
×
3767
  }
3768
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc