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

apache / iotdb / #9650

pending completion
#9650

push

travis_ci

web-flow
[IOTDB-6072] Load: workaround to CPU 100% after loading tsfile when using JDK8 runtime (#10624)

## Description
After loading tsfile, it causes 100% load on one CPU core.

## Reason
Root cause: high processor load for ScheduledThreadPoolExecutor with 0 core threads. It was a bug in JDK1.8.

See the following issues for more details:
[JDK-8129861](https://bugs.openjdk.java.net/browse/JDK-8129861)
[JDK-8022642](https://bugs.openjdk.java.net/browse/JDK-8022642)

## Solution
1. Set corePoolSize to 1 to avoid high processor load (a workaround)
2. Lazy initialization: init loadTsFileManager on first call (to avoid unnecessary threads' creation)

10 of 10 new or added lines in 2 files covered. (100.0%)

79053 of 165590 relevant lines covered (47.74%)

0.48 hits per line

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

78.73
/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.IoTDBConstant;
24
import org.apache.iotdb.commons.utils.FileUtils;
25
import org.apache.iotdb.commons.utils.TestOnly;
26
import org.apache.iotdb.consensus.ConsensusFactory;
27
import org.apache.iotdb.db.audit.AuditLogOperation;
28
import org.apache.iotdb.db.audit.AuditLogStorage;
29
import org.apache.iotdb.db.exception.LoadConfigurationException;
30
import org.apache.iotdb.db.protocol.thrift.impl.ClientRPCServiceImpl;
31
import org.apache.iotdb.db.storageengine.dataregion.compaction.constant.CompactionValidationLevel;
32
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.constant.CrossCompactionPerformer;
33
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.constant.InnerSeqCompactionPerformer;
34
import org.apache.iotdb.db.storageengine.dataregion.compaction.execute.performer.constant.InnerUnseqCompactionPerformer;
35
import org.apache.iotdb.db.storageengine.dataregion.compaction.schedule.constant.CompactionPriority;
36
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.constant.CrossCompactionSelector;
37
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.constant.InnerSequenceCompactionSelector;
38
import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.constant.InnerUnsequenceCompactionSelector;
39
import org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.TimeIndexLevel;
40
import org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALMode;
41
import org.apache.iotdb.db.utils.datastructure.TVListSortAlgorithm;
42
import org.apache.iotdb.rpc.RpcTransportFactory;
43
import org.apache.iotdb.rpc.RpcUtils;
44
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
45
import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
46
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
47
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
48
import org.apache.iotdb.tsfile.fileSystem.FSType;
49
import org.apache.iotdb.tsfile.utils.FSUtils;
50

51
import org.slf4j.Logger;
52
import org.slf4j.LoggerFactory;
53

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

65
import static org.apache.iotdb.commons.conf.IoTDBConstant.OBJECT_STORAGE_DIR;
66
import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARATOR;
67

68
public class IoTDBConfig {
69

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

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

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

86
  // e.g.,  .s1
87
  private static final String PARTIAL_NODE_MATCHER = "[" + PATH_SEPARATOR + "]" + NODE_NAME_MATCHER;
88

89
  private static final String NODE_MATCHER =
90
      "([" + PATH_SEPARATOR + "])?" + NODE_NAME_MATCHER + "(" + PARTIAL_NODE_MATCHER + ")*";
91

92
  public static final Pattern NODE_PATTERN = Pattern.compile(NODE_MATCHER);
1✔
93
  public static final String SYSTEM_DATABASE = "root.__system";
94

95
  /** whether to enable the mqtt service. */
96
  private boolean enableMQTTService = false;
1✔
97

98
  /** the mqtt service binding host. */
99
  private String mqttHost = "127.0.0.1";
1✔
100

101
  /** the mqtt service binding port. */
102
  private int mqttPort = 1883;
1✔
103

104
  /** the handler pool size for handing the mqtt messages. */
105
  private int mqttHandlerPoolSize = 1;
1✔
106

107
  /** the mqtt message payload formatter. */
108
  private String mqttPayloadFormatter = "json";
1✔
109

110
  /** max mqtt message size. Unit: byte */
111
  private int mqttMaxMessageSize = 1048576;
1✔
112

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

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

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

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

125
  /** Rpc Selector thread num */
126
  private int rpcSelectorThreadCount = 1;
1✔
127

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

131
  /** Max concurrent client number */
132
  private int rpcMaxConcurrentClientNum = 65535;
1✔
133

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

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

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

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

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

149
  /** Flush proportion for system */
150
  private double flushProportion = 0.4;
1✔
151

152
  /** Reject proportion for system */
153
  private double rejectProportion = 0.8;
1✔
154

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

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

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

164
  private final int maxLoadingDeviceNumber = 10000;
1✔
165

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

317
  private String dataRegionConsensusDir = consensusDir + File.separator + "data_region";
1✔
318

319
  private String schemaRegionConsensusDir = consensusDir + File.separator + "schema_region";
1✔
320

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

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

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

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

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

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

339
  private int modeMapSizeThreshold = 10000;
1✔
340

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

432
  private InnerSeqCompactionPerformer innerSeqCompactionPerformer =
1✔
433
      InnerSeqCompactionPerformer.READ_CHUNK;
434

435
  private InnerUnsequenceCompactionSelector innerUnsequenceCompactionSelector =
1✔
436
      InnerUnsequenceCompactionSelector.SIZE_TIERED;
437

438
  private InnerUnseqCompactionPerformer innerUnseqCompactionPerformer =
1✔
439
      InnerUnseqCompactionPerformer.FAST;
440

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

447
  private CrossCompactionPerformer crossCompactionPerformer = CrossCompactionPerformer.FAST;
1✔
448

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

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

464
  private double chunkMetadataSizeProportion = 0.1;
1✔
465

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

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

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

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

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

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

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

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

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

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

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

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

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

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

523
  private CompactionValidationLevel compactionValidationLevel = CompactionValidationLevel.NONE;
1✔
524

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

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

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

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

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

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

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

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

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

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

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

558
  /** Memory allocated proportion for wal pipe cache */
559
  private long allocateMemoryForWALPipeCache = allocateMemoryForConsensus / 10;
1✔
560

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

567
  /** Cache size of {@code checkAndGetDataTypeCache}. */
568
  private int mRemoteSchemaCacheSize = 100000;
1✔
569

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

575
  /** Examining period of cache file reader : 100 seconds. Unit: millisecond */
576
  private long cacheFileReaderClearPeriod = 100000;
1✔
577

578
  /** the max executing time of query in ms. Unit: millisecond */
579
  private long queryTimeoutThreshold = 60000;
1✔
580

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

584
  /** Replace implementation class of JDBC service */
585
  private String rpcImplClassName = ClientRPCServiceImpl.class.getName();
1✔
586

587
  /** indicate whether current mode is cluster */
588
  private boolean isClusterMode = false;
1✔
589

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

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

602
  /** whether use chunkBufferPool. */
603
  private boolean chunkBufferPoolEnable = false;
1✔
604

605
  /** Switch of creating schema automatically */
606
  private boolean enableAutoCreateSchema = true;
1✔
607

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

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

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

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

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

629
  /** Database level when creating schema automatically is enabled */
630
  private int defaultStorageGroupLevel = 1;
1✔
631

632
  /** BOOLEAN encoding when creating schema automatically is enabled */
633
  private TSEncoding defaultBooleanEncoding = TSEncoding.RLE;
1✔
634

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

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

641
  /** FLOAT encoding when creating schema automatically is enabled */
642
  private TSEncoding defaultFloatEncoding = TSEncoding.GORILLA;
1✔
643

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

647
  /** TEXT encoding when creating schema automatically is enabled */
648
  private TSEncoding defaultTextEncoding = TSEncoding.PLAIN;
1✔
649

650
  /** How many threads will be set up to perform settle tasks. */
651
  private int settleThreadNum = 1;
1✔
652

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

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

666
  /** The limit of compaction merge can reach per second */
667
  private int compactionWriteThroughputMbPerSec = 16;
1✔
668

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

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

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

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

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

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

699
  /** Default TSfile storage is in local file system */
700
  private FSType tsFileStorageFs = FSType.LOCAL;
1✔
701

702
  /** Enable hdfs or not */
703
  private boolean enableHDFS = false;
1✔
704

705
  /** Default core-site.xml file path is /etc/hadoop/conf/core-site.xml */
706
  private String coreSitePath = "/etc/hadoop/conf/core-site.xml";
1✔
707

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

711
  /** Default HDFS ip is localhost */
712
  private String hdfsIp = "localhost";
1✔
713

714
  /** Default HDFS port is 9000 */
715
  private String hdfsPort = "9000";
1✔
716

717
  /** Default DFS NameServices is hdfsnamespace */
718
  private String dfsNameServices = "hdfsnamespace";
1✔
719

720
  /** Default DFS HA name nodes are nn1 and nn2 */
721
  private String dfsHaNamenodes = "nn1,nn2";
1✔
722

723
  /** Default DFS HA automatic failover is enabled */
724
  private boolean dfsHaAutomaticFailoverEnabled = true;
1✔
725

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

733
  /** whether use kerberos to authenticate hdfs */
734
  private boolean useKerberos = false;
1✔
735

736
  /** full path of kerberos keytab file */
737
  private String kerberosKeytabFilePath = "/path";
1✔
738

739
  /** kerberos principal */
740
  private String kerberosPrincipal = "your principal";
1✔
741

742
  /** the num of memtable in each database */
743
  private int concurrentWritingTimePartition = 1;
1✔
744

745
  /** the default fill interval in LinearFill and PreviousFill, -1 means infinite past time */
746
  private int defaultFillInterval = -1;
1✔
747

748
  /** The default value of primitive array size in array pool */
749
  private int primitiveArraySize = 64;
1✔
750

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

757
  // just for test
758
  // wait for 60 second by default.
759
  private int thriftServerAwaitTimeForStopService = 60;
1✔
760

761
  // Interval num of tag and attribute records when force flushing to disk
762
  private int tagAttributeFlushInterval = 1000;
1✔
763

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

768
  private boolean enable13DataInsertAdapt = false;
1✔
769

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

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

786
  private float udfReaderMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
1✔
787

788
  private float udfTransformerMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
1✔
789

790
  private float udfCollectorMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
1✔
791

792
  // time in nanosecond precision when starting up
793
  private long startUpNanosecond = System.nanoTime();
1✔
794

795
  /** Unit: byte */
796
  private int thriftMaxFrameSize = 536870912;
1✔
797

798
  private int thriftDefaultBufferSize = RpcUtils.THRIFT_DEFAULT_BUF_CAPACITY;
1✔
799

800
  /** time interval in minute for calculating query frequency. Unit: minute */
801
  private int frequencyIntervalInMinute = 1;
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

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

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

1018
  private int dataRatisConsensusGrpcLeaderOutstandingAppendsMax = 128;
1✔
1019

1020
  private long dataRatisConsensusLeaderElectionTimeoutMinMs = 2000L;
1✔
1021
  private long schemaRatisConsensusLeaderElectionTimeoutMinMs = 2000L;
1✔
1022

1023
  private long dataRatisConsensusLeaderElectionTimeoutMaxMs = 4000L;
1✔
1024
  private long schemaRatisConsensusLeaderElectionTimeoutMaxMs = 4000L;
1✔
1025

1026
  /** CQ related */
1027
  private long cqMinEveryIntervalInMs = 1_000;
1✔
1028

1029
  private long dataRatisConsensusRequestTimeoutMs = 10000L;
1✔
1030
  private long schemaRatisConsensusRequestTimeoutMs = 10000L;
1✔
1031

1032
  private int dataRatisConsensusMaxRetryAttempts = 10;
1✔
1033
  private int schemaRatisConsensusMaxRetryAttempts = 10;
1✔
1034
  private long dataRatisConsensusInitialSleepTimeMs = 100L;
1✔
1035
  private long schemaRatisConsensusInitialSleepTimeMs = 100L;
1✔
1036
  private long dataRatisConsensusMaxSleepTimeMs = 10000L;
1✔
1037
  private long schemaRatisConsensusMaxSleepTimeMs = 10000L;
1✔
1038

1039
  private long dataRatisConsensusPreserveWhenPurge = 1000L;
1✔
1040
  private long schemaRatisConsensusPreserveWhenPurge = 1000L;
1✔
1041

1042
  private long ratisFirstElectionTimeoutMinMs = 50L;
1✔
1043
  private long ratisFirstElectionTimeoutMaxMs = 150L;
1✔
1044

1045
  private long dataRatisLogMax = 20L * 1024 * 1024 * 1024; // 20G
1✔
1046
  private long schemaRatisLogMax = 2L * 1024 * 1024 * 1024; // 2G
1✔
1047

1048
  /** whether to enable the audit log * */
1049
  private boolean enableAuditLog = false;
1✔
1050

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

1054
  /** This configuration parameter sets the maximum number of schema allowed in the cluster.* */
1055
  private long clusterSchemaLimitThreshold = -1;
1✔
1056

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

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

1065
  /** whether the local write api records audit logs * */
1066
  private boolean enableAuditLogForNativeInsertApi = true;
1✔
1067

1068
  // customizedProperties, this should be empty by default.
1069
  private Properties customizedProperties = new Properties();
1✔
1070

1071
  // IoTConsensus Config
1072
  private int maxLogEntriesNumPerBatch = 1024;
1✔
1073
  private int maxSizePerBatch = 16 * 1024 * 1024;
1✔
1074
  private int maxPendingBatchesNum = 12;
1✔
1075
  private double maxMemoryRatioForQueue = 0.6;
1✔
1076

1077
  /** Pipe related */
1078
  private String pipeReceiveFileDir =
1✔
1079
      systemDir + File.separator + "pipe" + File.separator + "receiver";
1080

1081
  /** Resource control */
1082
  private boolean quotaEnable = false;
1✔
1083

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

1091
  IoTDBConfig() {}
1✔
1092

1093
  public int getMaxLogEntriesNumPerBatch() {
1094
    return maxLogEntriesNumPerBatch;
1✔
1095
  }
1096

1097
  public int getMaxSizePerBatch() {
1098
    return maxSizePerBatch;
1✔
1099
  }
1100

1101
  public int getMaxPendingBatchesNum() {
1102
    return maxPendingBatchesNum;
1✔
1103
  }
1104

1105
  public double getMaxMemoryRatioForQueue() {
1106
    return maxMemoryRatioForQueue;
1✔
1107
  }
1108

1109
  public void setMaxLogEntriesNumPerBatch(int maxLogEntriesNumPerBatch) {
1110
    this.maxLogEntriesNumPerBatch = maxLogEntriesNumPerBatch;
1✔
1111
  }
1✔
1112

1113
  public void setMaxSizePerBatch(int maxSizePerBatch) {
1114
    this.maxSizePerBatch = maxSizePerBatch;
1✔
1115
  }
1✔
1116

1117
  public void setMaxPendingBatchesNum(int maxPendingBatchesNum) {
1118
    this.maxPendingBatchesNum = maxPendingBatchesNum;
1✔
1119
  }
1✔
1120

1121
  public void setMaxMemoryRatioForQueue(double maxMemoryRatioForQueue) {
1122
    this.maxMemoryRatioForQueue = maxMemoryRatioForQueue;
1✔
1123
  }
1✔
1124

1125
  public float getUdfMemoryBudgetInMB() {
1126
    return udfMemoryBudgetInMB;
×
1127
  }
1128

1129
  public void setUdfMemoryBudgetInMB(float udfMemoryBudgetInMB) {
1130
    this.udfMemoryBudgetInMB = udfMemoryBudgetInMB;
×
1131
  }
×
1132

1133
  public float getUdfReaderMemoryBudgetInMB() {
1134
    return udfReaderMemoryBudgetInMB;
1✔
1135
  }
1136

1137
  public void setUdfReaderMemoryBudgetInMB(float udfReaderMemoryBudgetInMB) {
1138
    this.udfReaderMemoryBudgetInMB = udfReaderMemoryBudgetInMB;
×
1139
  }
×
1140

1141
  public float getUdfTransformerMemoryBudgetInMB() {
1142
    return udfTransformerMemoryBudgetInMB;
1✔
1143
  }
1144

1145
  public void setUdfTransformerMemoryBudgetInMB(float udfTransformerMemoryBudgetInMB) {
1146
    this.udfTransformerMemoryBudgetInMB = udfTransformerMemoryBudgetInMB;
×
1147
  }
×
1148

1149
  public float getUdfCollectorMemoryBudgetInMB() {
1150
    return udfCollectorMemoryBudgetInMB;
1✔
1151
  }
1152

1153
  public void setUdfCollectorMemoryBudgetInMB(float udfCollectorMemoryBudgetInMB) {
1154
    this.udfCollectorMemoryBudgetInMB = udfCollectorMemoryBudgetInMB;
×
1155
  }
×
1156

1157
  public int getUdfInitialByteArrayLengthForMemoryControl() {
1158
    return udfInitialByteArrayLengthForMemoryControl;
1✔
1159
  }
1160

1161
  public void setUdfInitialByteArrayLengthForMemoryControl(
1162
      int udfInitialByteArrayLengthForMemoryControl) {
1163
    this.udfInitialByteArrayLengthForMemoryControl = udfInitialByteArrayLengthForMemoryControl;
×
1164
  }
×
1165

1166
  public int getConcurrentWritingTimePartition() {
1167
    return concurrentWritingTimePartition;
1✔
1168
  }
1169

1170
  public void setConcurrentWritingTimePartition(int concurrentWritingTimePartition) {
1171
    this.concurrentWritingTimePartition = concurrentWritingTimePartition;
1✔
1172
  }
1✔
1173

1174
  public int getDefaultFillInterval() {
1175
    return defaultFillInterval;
1✔
1176
  }
1177

1178
  public void setDefaultFillInterval(int defaultFillInterval) {
1179
    this.defaultFillInterval = defaultFillInterval;
1✔
1180
  }
1✔
1181

1182
  public TimeIndexLevel getTimeIndexLevel() {
1183
    return timeIndexLevel;
1✔
1184
  }
1185

1186
  public void setTimeIndexLevel(String timeIndexLevel) {
1187
    this.timeIndexLevel = TimeIndexLevel.valueOf(timeIndexLevel);
1✔
1188
  }
1✔
1189

1190
  public void updatePath() {
1191
    formulateFolders();
1✔
1192
    confirmMultiDirStrategy();
1✔
1193
  }
1✔
1194

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

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

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

1261
  // if IOTDB_DATA_HOME is not set, then we keep dataHomeDir prefix being the same with IOTDB_HOME
1262
  // In this way, we can keep consistent with v0.13.0~2.
1263
  private String addDataHomeDir(String dir) {
1264
    String dataHomeDir = System.getProperty(IoTDBConstant.IOTDB_DATA_HOME, null);
1✔
1265
    if (dataHomeDir == null) {
1✔
1266
      dataHomeDir = System.getProperty(IoTDBConstant.IOTDB_HOME, null);
1✔
1267
    }
1268
    if (dataHomeDir == null) {
1✔
1269
      return dir;
1✔
1270
    }
1271

1272
    File dataHomeFile = new File(dataHomeDir);
×
1273
    try {
1274
      dataHomeDir = dataHomeFile.getCanonicalPath();
×
1275
    } catch (IOException e) {
×
1276
      logger.error("Fail to get canonical path of {}", dataHomeFile, e);
×
1277
    }
×
1278
    return FileUtils.addPrefix2FilePath(dataHomeDir, dir);
×
1279
  }
1280

1281
  void confirmMultiDirStrategy() {
1282
    if (getMultiDirStrategyClassName() == null) {
1✔
1283
      multiDirStrategyClassName = DEFAULT_MULTI_DIR_STRATEGY;
1✔
1284
    }
1285
    if (!getMultiDirStrategyClassName().contains(TsFileConstant.PATH_SEPARATOR)) {
1✔
1286
      multiDirStrategyClassName = MULTI_DIR_STRATEGY_PREFIX + multiDirStrategyClassName;
1✔
1287
    }
1288

1289
    try {
1290
      Class.forName(multiDirStrategyClassName);
1✔
1291
    } catch (ClassNotFoundException e) {
×
1292
      logger.warn(
×
1293
          "Cannot find given directory strategy {}, using the default value",
1294
          getMultiDirStrategyClassName(),
×
1295
          e);
1296
      setMultiDirStrategyClassName(MULTI_DIR_STRATEGY_PREFIX + DEFAULT_MULTI_DIR_STRATEGY);
×
1297
    }
1✔
1298
  }
1✔
1299

1300
  private String getHdfsDir() {
1301
    String[] hdfsIps = TSFileDescriptor.getInstance().getConfig().getHdfsIp();
×
1302
    String hdfsDir = "hdfs://";
×
1303
    if (hdfsIps.length > 1) {
×
1304
      hdfsDir += TSFileDescriptor.getInstance().getConfig().getDfsNameServices();
×
1305
    } else {
1306
      hdfsDir += hdfsIps[0] + ":" + TSFileDescriptor.getInstance().getConfig().getHdfsPort();
×
1307
    }
1308
    return hdfsDir;
×
1309
  }
1310

1311
  public String[] getDataDirs() {
1312
    return Arrays.stream(tierDataDirs).flatMap(Arrays::stream).toArray(String[]::new);
1✔
1313
  }
1314

1315
  public String[] getLocalDataDirs() {
1316
    return Arrays.stream(tierDataDirs)
1✔
1317
        .flatMap(Arrays::stream)
1✔
1318
        .filter(FSUtils::isLocal)
1✔
1319
        .toArray(String[]::new);
1✔
1320
  }
1321

1322
  public String[][] getTierDataDirs() {
1323
    return tierDataDirs;
1✔
1324
  }
1325

1326
  public void setTierDataDirs(String[][] tierDataDirs) {
1327
    formulateDataDirs(tierDataDirs);
1✔
1328
    this.tierDataDirs = tierDataDirs;
1✔
1329
    // TODO(szywilliam): rewrite the logic here when ratis supports complete snapshot semantic
1330
    setRatisDataRegionSnapshotDir(
1✔
1331
        tierDataDirs[0][0] + File.separator + IoTDBConstant.SNAPSHOT_FOLDER_NAME);
1332
    setLoadTsFileDir(tierDataDirs[0][0] + File.separator + IoTDBConstant.LOAD_TSFILE_FOLDER_NAME);
1✔
1333
  }
1✔
1334

1335
  public String getRpcAddress() {
1336
    return rpcAddress;
1✔
1337
  }
1338

1339
  public void setRpcAddress(String rpcAddress) {
1340
    this.rpcAddress = rpcAddress;
1✔
1341
  }
1✔
1342

1343
  public int getRpcPort() {
1344
    return rpcPort;
1✔
1345
  }
1346

1347
  public void setRpcPort(int rpcPort) {
1348
    this.rpcPort = rpcPort;
1✔
1349
  }
1✔
1350

1351
  public boolean isEnableDiscardOutOfOrderData() {
1352
    return enableDiscardOutOfOrderData;
1✔
1353
  }
1354

1355
  public void setEnableDiscardOutOfOrderData(boolean enableDiscardOutOfOrderData) {
1356
    this.enableDiscardOutOfOrderData = enableDiscardOutOfOrderData;
1✔
1357
  }
1✔
1358

1359
  public String getSystemDir() {
1360
    return systemDir;
1✔
1361
  }
1362

1363
  void setSystemDir(String systemDir) {
1364
    this.systemDir = systemDir;
1✔
1365
  }
1✔
1366

1367
  public String getLoadTsFileDir() {
1368
    return loadTsFileDir;
×
1369
  }
1370

1371
  public void setLoadTsFileDir(String loadTsFileDir) {
1372
    this.loadTsFileDir = loadTsFileDir;
1✔
1373
  }
1✔
1374

1375
  public String getSchemaDir() {
1376
    return schemaDir;
1✔
1377
  }
1378

1379
  public void setSchemaDir(String schemaDir) {
1380
    this.schemaDir = schemaDir;
1✔
1381
  }
1✔
1382

1383
  public String getQueryDir() {
1384
    return queryDir;
1✔
1385
  }
1386

1387
  void setQueryDir(String queryDir) {
1388
    this.queryDir = queryDir;
1✔
1389
  }
1✔
1390

1391
  public String getRatisDataRegionSnapshotDir() {
1392
    return ratisDataRegionSnapshotDir;
×
1393
  }
1394

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

1399
  public String getConsensusDir() {
1400
    return consensusDir;
1✔
1401
  }
1402

1403
  public void setConsensusDir(String consensusDir) {
1404
    this.consensusDir = consensusDir;
1✔
1405
    setDataRegionConsensusDir(consensusDir + File.separator + "data_region");
1✔
1406
    setSchemaRegionConsensusDir(consensusDir + File.separator + "schema_region");
1✔
1407
  }
1✔
1408

1409
  public String getDataRegionConsensusDir() {
1410
    return dataRegionConsensusDir;
1✔
1411
  }
1412

1413
  public void setDataRegionConsensusDir(String dataRegionConsensusDir) {
1414
    this.dataRegionConsensusDir = dataRegionConsensusDir;
1✔
1415
  }
1✔
1416

1417
  public String getSchemaRegionConsensusDir() {
1418
    return schemaRegionConsensusDir;
1✔
1419
  }
1420

1421
  public void setSchemaRegionConsensusDir(String schemaRegionConsensusDir) {
1422
    this.schemaRegionConsensusDir = schemaRegionConsensusDir;
1✔
1423
  }
1✔
1424

1425
  public String getExtDir() {
1426
    return extDir;
1✔
1427
  }
1428

1429
  public void setExtDir(String extDir) {
1430
    this.extDir = extDir;
×
1431
  }
×
1432

1433
  public String getUdfDir() {
1434
    return udfDir;
1✔
1435
  }
1436

1437
  public void setUdfDir(String udfDir) {
1438
    this.udfDir = udfDir;
1✔
1439
    updateUdfTemporaryLibDir();
1✔
1440
  }
1✔
1441

1442
  public String getUdfTemporaryLibDir() {
1443
    return udfTemporaryLibDir;
×
1444
  }
1445

1446
  public void updateUdfTemporaryLibDir() {
1447
    this.udfTemporaryLibDir = udfDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
1✔
1448
  }
1✔
1449

1450
  public String getTriggerDir() {
1451
    return triggerDir;
1✔
1452
  }
1453

1454
  public void setTriggerDir(String triggerDir) {
1455
    this.triggerDir = triggerDir;
1✔
1456
    updateTriggerTemporaryLibDir();
1✔
1457
  }
1✔
1458

1459
  public String getTriggerTemporaryLibDir() {
1460
    return triggerTemporaryLibDir;
×
1461
  }
1462

1463
  public void updateTriggerTemporaryLibDir() {
1464
    this.triggerTemporaryLibDir = triggerDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
1✔
1465
  }
1✔
1466

1467
  public String getPipeLibDir() {
1468
    return pipeDir;
1✔
1469
  }
1470

1471
  public void setPipeLibDir(String pipeDir) {
1472
    this.pipeDir = pipeDir;
1✔
1473
    updatePipeTemporaryLibDir();
1✔
1474
  }
1✔
1475

1476
  public String getPipeTemporaryLibDir() {
1477
    return pipeTemporaryLibDir;
×
1478
  }
1479

1480
  public void updatePipeTemporaryLibDir() {
1481
    this.pipeTemporaryLibDir = pipeDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
1✔
1482
  }
1✔
1483

1484
  public String getMqttDir() {
1485
    return mqttDir;
1✔
1486
  }
1487

1488
  public void setMqttDir(String mqttDir) {
1489
    this.mqttDir = mqttDir;
1✔
1490
  }
1✔
1491

1492
  public String getMultiDirStrategyClassName() {
1493
    return multiDirStrategyClassName;
1✔
1494
  }
1495

1496
  void setMultiDirStrategyClassName(String multiDirStrategyClassName) {
1497
    this.multiDirStrategyClassName = multiDirStrategyClassName;
1✔
1498
  }
1✔
1499

1500
  public void checkMultiDirStrategyClassName() {
1501
    if (isClusterMode) {
1✔
1502
      for (String multiDirStrategy : CLUSTER_ALLOWED_MULTI_DIR_STRATEGIES) {
1✔
1503
        // If the multiDirStrategyClassName is one of cluster allowed strategy, the check is passed.
1504
        if (multiDirStrategyClassName.equals(multiDirStrategy)
1✔
1505
            || multiDirStrategyClassName.equals(MULTI_DIR_STRATEGY_PREFIX + multiDirStrategy)) {
1✔
1506
          return;
1✔
1507
        }
1508
      }
1509
      String msg =
×
1510
          String.format(
×
1511
              "Cannot set multi_dir_strategy to %s, because cluster mode only allows %s.",
1512
              multiDirStrategyClassName, Arrays.toString(CLUSTER_ALLOWED_MULTI_DIR_STRATEGIES));
×
1513
      logger.error(msg);
×
1514
      throw new RuntimeException(msg);
×
1515
    }
1516
  }
1✔
1517

1518
  public int getBatchSize() {
1519
    return batchSize;
1✔
1520
  }
1521

1522
  void setBatchSize(int batchSize) {
1523
    this.batchSize = batchSize;
1✔
1524
  }
1✔
1525

1526
  public int getMaxMemtableNumber() {
1527
    return maxMemtableNumber;
×
1528
  }
1529

1530
  public void setMaxMemtableNumber(int maxMemtableNumber) {
1531
    this.maxMemtableNumber = maxMemtableNumber;
×
1532
  }
×
1533

1534
  public int getFlushThreadCount() {
1535
    return flushThreadCount;
1✔
1536
  }
1537

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

1542
  public int getQueryThreadCount() {
1543
    return queryThreadCount;
1✔
1544
  }
1545

1546
  public void setQueryThreadCount(int queryThreadCount) {
1547
    this.queryThreadCount = queryThreadCount;
1✔
1548
    this.maxBytesPerFragmentInstance = allocateMemoryForDataExchange / queryThreadCount;
1✔
1549
  }
1✔
1550

1551
  public void setDegreeOfParallelism(int degreeOfParallelism) {
1552
    if (degreeOfParallelism > 0) {
1✔
1553
      this.degreeOfParallelism = degreeOfParallelism;
1✔
1554
    }
1555
  }
1✔
1556

1557
  public int getDegreeOfParallelism() {
1558
    return degreeOfParallelism;
1✔
1559
  }
1560

1561
  public int getMaxAllowedConcurrentQueries() {
1562
    return maxAllowedConcurrentQueries;
1✔
1563
  }
1564

1565
  public void setMaxAllowedConcurrentQueries(int maxAllowedConcurrentQueries) {
1566
    this.maxAllowedConcurrentQueries = maxAllowedConcurrentQueries;
1✔
1567
  }
1✔
1568

1569
  public long getMaxBytesPerFragmentInstance() {
1570
    return maxBytesPerFragmentInstance;
1✔
1571
  }
1572

1573
  @TestOnly
1574
  public void setMaxBytesPerFragmentInstance(long maxBytesPerFragmentInstance) {
1575
    this.maxBytesPerFragmentInstance = maxBytesPerFragmentInstance;
1✔
1576
  }
1✔
1577

1578
  public int getWindowEvaluationThreadCount() {
1579
    return windowEvaluationThreadCount;
1✔
1580
  }
1581

1582
  public void setWindowEvaluationThreadCount(int windowEvaluationThreadCount) {
1583
    this.windowEvaluationThreadCount = windowEvaluationThreadCount;
1✔
1584
  }
1✔
1585

1586
  public int getMaxPendingWindowEvaluationTasks() {
1587
    return maxPendingWindowEvaluationTasks;
1✔
1588
  }
1589

1590
  public void setMaxPendingWindowEvaluationTasks(int maxPendingWindowEvaluationTasks) {
1591
    this.maxPendingWindowEvaluationTasks = maxPendingWindowEvaluationTasks;
1✔
1592
  }
1✔
1593

1594
  public long getSeqTsFileSize() {
1595
    return seqTsFileSize;
1✔
1596
  }
1597

1598
  public void setSeqTsFileSize(long seqTsFileSize) {
1599
    this.seqTsFileSize = seqTsFileSize;
1✔
1600
  }
1✔
1601

1602
  public long getUnSeqTsFileSize() {
1603
    return unSeqTsFileSize;
1✔
1604
  }
1605

1606
  public void setUnSeqTsFileSize(long unSeqTsFileSize) {
1607
    this.unSeqTsFileSize = unSeqTsFileSize;
1✔
1608
  }
1✔
1609

1610
  public int getRpcSelectorThreadCount() {
1611
    return rpcSelectorThreadCount;
1✔
1612
  }
1613

1614
  public void setRpcSelectorThreadCount(int rpcSelectorThreadCount) {
1615
    this.rpcSelectorThreadCount = rpcSelectorThreadCount;
1✔
1616
  }
1✔
1617

1618
  public int getRpcMinConcurrentClientNum() {
1619
    return rpcMinConcurrentClientNum;
1✔
1620
  }
1621

1622
  public void setRpcMinConcurrentClientNum(int rpcMinConcurrentClientNum) {
1623
    this.rpcMinConcurrentClientNum = rpcMinConcurrentClientNum;
1✔
1624
  }
1✔
1625

1626
  public int getRpcMaxConcurrentClientNum() {
1627
    return rpcMaxConcurrentClientNum;
1✔
1628
  }
1629

1630
  void setRpcMaxConcurrentClientNum(int rpcMaxConcurrentClientNum) {
1631
    this.rpcMaxConcurrentClientNum = rpcMaxConcurrentClientNum;
1✔
1632
  }
1✔
1633

1634
  public int getmRemoteSchemaCacheSize() {
1635
    return mRemoteSchemaCacheSize;
1✔
1636
  }
1637

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

1642
  String getLanguageVersion() {
1643
    return languageVersion;
1✔
1644
  }
1645

1646
  void setLanguageVersion(String languageVersion) {
1647
    this.languageVersion = languageVersion;
1✔
1648
  }
1✔
1649

1650
  public String getIoTDBVersion() {
1651
    return IoTDBConstant.VERSION;
×
1652
  }
1653

1654
  public String getIoTDBMajorVersion() {
1655
    return IoTDBConstant.MAJOR_VERSION;
×
1656
  }
1657

1658
  public String getIoTDBMajorVersion(String version) {
1659
    return "UNKNOWN".equals(version)
×
1660
        ? "UNKNOWN"
×
1661
        : version.split("\\.")[0] + "." + version.split("\\.")[1];
×
1662
  }
1663

1664
  public long getCacheFileReaderClearPeriod() {
1665
    return cacheFileReaderClearPeriod;
1✔
1666
  }
1667

1668
  public void setCacheFileReaderClearPeriod(long cacheFileReaderClearPeriod) {
1669
    this.cacheFileReaderClearPeriod = cacheFileReaderClearPeriod;
1✔
1670
  }
1✔
1671

1672
  public long getQueryTimeoutThreshold() {
1673
    return queryTimeoutThreshold;
1✔
1674
  }
1675

1676
  public void setQueryTimeoutThreshold(long queryTimeoutThreshold) {
1677
    this.queryTimeoutThreshold = queryTimeoutThreshold;
1✔
1678
  }
1✔
1679

1680
  public int getSessionTimeoutThreshold() {
1681
    return sessionTimeoutThreshold;
1✔
1682
  }
1683

1684
  public void setSessionTimeoutThreshold(int sessionTimeoutThreshold) {
1685
    this.sessionTimeoutThreshold = sessionTimeoutThreshold;
1✔
1686
  }
1✔
1687

1688
  public String getRpcImplClassName() {
1689
    return rpcImplClassName;
×
1690
  }
1691

1692
  public void setRpcImplClassName(String rpcImplClassName) {
1693
    this.rpcImplClassName = rpcImplClassName;
×
1694
  }
×
1695

1696
  public WALMode getWalMode() {
1697
    return walMode;
1✔
1698
  }
1699

1700
  public void setWalMode(WALMode walMode) {
1701
    this.walMode = walMode;
1✔
1702
  }
1✔
1703

1704
  public int getMaxWalNodesNum() {
1705
    return maxWalNodesNum;
1✔
1706
  }
1707

1708
  void setMaxWalNodesNum(int maxWalNodesNum) {
1709
    this.maxWalNodesNum = maxWalNodesNum;
×
1710
  }
×
1711

1712
  public long getWalAsyncModeFsyncDelayInMs() {
1713
    return walAsyncModeFsyncDelayInMs;
1✔
1714
  }
1715

1716
  void setWalAsyncModeFsyncDelayInMs(long walAsyncModeFsyncDelayInMs) {
1717
    this.walAsyncModeFsyncDelayInMs = walAsyncModeFsyncDelayInMs;
1✔
1718
  }
1✔
1719

1720
  public long getWalSyncModeFsyncDelayInMs() {
1721
    return walSyncModeFsyncDelayInMs;
1✔
1722
  }
1723

1724
  public void setWalSyncModeFsyncDelayInMs(long walSyncModeFsyncDelayInMs) {
1725
    this.walSyncModeFsyncDelayInMs = walSyncModeFsyncDelayInMs;
1✔
1726
  }
1✔
1727

1728
  public int getWalBufferSize() {
1729
    return walBufferSize;
1✔
1730
  }
1731

1732
  public void setWalBufferSize(int walBufferSize) {
1733
    this.walBufferSize = walBufferSize;
1✔
1734
  }
1✔
1735

1736
  public int getWalBufferQueueCapacity() {
1737
    return walBufferQueueCapacity;
1✔
1738
  }
1739

1740
  void setWalBufferQueueCapacity(int walBufferQueueCapacity) {
1741
    this.walBufferQueueCapacity = walBufferQueueCapacity;
1✔
1742
  }
1✔
1743

1744
  public long getWalFileSizeThresholdInByte() {
1745
    return walFileSizeThresholdInByte;
1✔
1746
  }
1747

1748
  void setWalFileSizeThresholdInByte(long walFileSizeThresholdInByte) {
1749
    this.walFileSizeThresholdInByte = walFileSizeThresholdInByte;
1✔
1750
  }
1✔
1751

1752
  public long getCheckpointFileSizeThresholdInByte() {
1753
    return checkpointFileSizeThresholdInByte;
1✔
1754
  }
1755

1756
  public void setCheckpointFileSizeThresholdInByte(long checkpointFileSizeThresholdInByte) {
1757
    this.checkpointFileSizeThresholdInByte = checkpointFileSizeThresholdInByte;
1✔
1758
  }
1✔
1759

1760
  public double getWalMinEffectiveInfoRatio() {
1761
    return walMinEffectiveInfoRatio;
1✔
1762
  }
1763

1764
  void setWalMinEffectiveInfoRatio(double walMinEffectiveInfoRatio) {
1765
    this.walMinEffectiveInfoRatio = walMinEffectiveInfoRatio;
1✔
1766
  }
1✔
1767

1768
  public long getWalMemTableSnapshotThreshold() {
1769
    return walMemTableSnapshotThreshold;
1✔
1770
  }
1771

1772
  void setWalMemTableSnapshotThreshold(long walMemTableSnapshotThreshold) {
1773
    this.walMemTableSnapshotThreshold = walMemTableSnapshotThreshold;
1✔
1774
  }
1✔
1775

1776
  public int getMaxWalMemTableSnapshotNum() {
1777
    return maxWalMemTableSnapshotNum;
1✔
1778
  }
1779

1780
  void setMaxWalMemTableSnapshotNum(int maxWalMemTableSnapshotNum) {
1781
    this.maxWalMemTableSnapshotNum = maxWalMemTableSnapshotNum;
1✔
1782
  }
1✔
1783

1784
  public long getDeleteWalFilesPeriodInMs() {
1785
    return deleteWalFilesPeriodInMs;
1✔
1786
  }
1787

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

1792
  public boolean isChunkBufferPoolEnable() {
1793
    return chunkBufferPoolEnable;
×
1794
  }
1795

1796
  void setChunkBufferPoolEnable(boolean chunkBufferPoolEnable) {
1797
    this.chunkBufferPoolEnable = chunkBufferPoolEnable;
×
1798
  }
×
1799

1800
  public long getMergeIntervalSec() {
1801
    return mergeIntervalSec;
1✔
1802
  }
1803

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

1808
  public double getBufferedArraysMemoryProportion() {
1809
    return bufferedArraysMemoryProportion;
1✔
1810
  }
1811

1812
  public void setBufferedArraysMemoryProportion(double bufferedArraysMemoryProportion) {
1813
    this.bufferedArraysMemoryProportion = bufferedArraysMemoryProportion;
1✔
1814
  }
1✔
1815

1816
  public double getFlushProportion() {
1817
    return flushProportion;
1✔
1818
  }
1819

1820
  public void setFlushProportion(double flushProportion) {
1821
    this.flushProportion = flushProportion;
1✔
1822
  }
1✔
1823

1824
  public double getRejectProportion() {
1825
    return rejectProportion;
1✔
1826
  }
1827

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

1832
  public double getWriteMemoryVariationReportProportion() {
1833
    return writeMemoryVariationReportProportion;
1✔
1834
  }
1835

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

1840
  public long getAllocateMemoryForStorageEngine() {
1841
    return allocateMemoryForStorageEngine;
1✔
1842
  }
1843

1844
  public void setAllocateMemoryForStorageEngine(long allocateMemoryForStorageEngine) {
1845
    this.allocateMemoryForStorageEngine = allocateMemoryForStorageEngine;
×
1846
  }
×
1847

1848
  public long getAllocateMemoryForSchema() {
1849
    return allocateMemoryForSchema;
1✔
1850
  }
1851

1852
  public void setAllocateMemoryForSchema(long allocateMemoryForSchema) {
1853
    this.allocateMemoryForSchema = allocateMemoryForSchema;
×
1854

1855
    this.allocateMemoryForSchemaRegion = allocateMemoryForSchema * 5 / 10;
×
1856
    this.allocateMemoryForSchemaCache = allocateMemoryForSchema * 4 / 10;
×
1857
    this.allocateMemoryForPartitionCache = allocateMemoryForSchema / 10;
×
1858
  }
×
1859

1860
  public long getAllocateMemoryForConsensus() {
1861
    return allocateMemoryForConsensus;
1✔
1862
  }
1863

1864
  public void setAllocateMemoryForConsensus(long allocateMemoryForConsensus) {
1865
    this.allocateMemoryForConsensus = allocateMemoryForConsensus;
×
1866
    this.allocateMemoryForWALPipeCache = allocateMemoryForConsensus / 10;
×
1867
  }
×
1868

1869
  public long getAllocateMemoryForRead() {
1870
    return allocateMemoryForRead;
1✔
1871
  }
1872

1873
  void setAllocateMemoryForRead(long allocateMemoryForRead) {
1874
    this.allocateMemoryForRead = allocateMemoryForRead;
×
1875

1876
    this.allocateMemoryForBloomFilterCache = allocateMemoryForRead / 1001;
×
1877
    this.allocateMemoryForTimeSeriesMetaDataCache = allocateMemoryForRead * 200 / 1001;
×
1878
    this.allocateMemoryForChunkCache = allocateMemoryForRead * 100 / 1001;
×
1879
    this.allocateMemoryForCoordinator = allocateMemoryForRead * 50 / 1001;
×
1880
    this.allocateMemoryForOperators = allocateMemoryForRead * 200 / 1001;
×
1881
    this.allocateMemoryForDataExchange = allocateMemoryForRead * 200 / 1001;
×
1882
    this.maxBytesPerFragmentInstance = allocateMemoryForDataExchange / queryThreadCount;
×
1883
    this.allocateMemoryForTimeIndex = allocateMemoryForRead * 200 / 1001;
×
1884
  }
×
1885

1886
  public long getAllocateMemoryForFree() {
1887
    return Runtime.getRuntime().maxMemory()
×
1888
        - allocateMemoryForStorageEngine
1889
        - allocateMemoryForRead
1890
        - allocateMemoryForSchema;
1891
  }
1892

1893
  public boolean isEnablePartialInsert() {
1894
    return enablePartialInsert;
1✔
1895
  }
1896

1897
  public void setEnablePartialInsert(boolean enablePartialInsert) {
1898
    this.enablePartialInsert = enablePartialInsert;
1✔
1899
  }
1✔
1900

1901
  public boolean isEnable13DataInsertAdapt() {
1902
    return enable13DataInsertAdapt;
1✔
1903
  }
1904

1905
  public void setEnable13DataInsertAdapt(boolean enable13DataInsertAdapt) {
1906
    this.enable13DataInsertAdapt = enable13DataInsertAdapt;
1✔
1907
  }
1✔
1908

1909
  public int getCompactionThreadCount() {
1910
    return compactionThreadCount;
1✔
1911
  }
1912

1913
  public void setCompactionThreadCount(int compactionThreadCount) {
1914
    this.compactionThreadCount = compactionThreadCount;
1✔
1915
  }
1✔
1916

1917
  public int getContinuousQueryThreadNum() {
1918
    return continuousQueryThreadNum;
1✔
1919
  }
1920

1921
  public void setContinuousQueryThreadNum(int continuousQueryThreadNum) {
1922
    this.continuousQueryThreadNum = continuousQueryThreadNum;
1✔
1923
  }
1✔
1924

1925
  public long getContinuousQueryMinimumEveryInterval() {
1926
    return continuousQueryMinimumEveryInterval;
×
1927
  }
1928

1929
  public void setContinuousQueryMinimumEveryInterval(long minimumEveryInterval) {
1930
    this.continuousQueryMinimumEveryInterval = minimumEveryInterval;
1✔
1931
  }
1✔
1932

1933
  public long getIntoOperationBufferSizeInByte() {
1934
    return intoOperationBufferSizeInByte;
1✔
1935
  }
1936

1937
  public void setIntoOperationBufferSizeInByte(long intoOperationBufferSizeInByte) {
1938
    this.intoOperationBufferSizeInByte = intoOperationBufferSizeInByte;
1✔
1939
  }
1✔
1940

1941
  public int getSelectIntoInsertTabletPlanRowLimit() {
1942
    return selectIntoInsertTabletPlanRowLimit;
1✔
1943
  }
1944

1945
  public void setSelectIntoInsertTabletPlanRowLimit(int selectIntoInsertTabletPlanRowLimit) {
1946
    this.selectIntoInsertTabletPlanRowLimit = selectIntoInsertTabletPlanRowLimit;
1✔
1947
  }
1✔
1948

1949
  public int getIntoOperationExecutionThreadCount() {
1950
    return intoOperationExecutionThreadCount;
1✔
1951
  }
1952

1953
  public void setIntoOperationExecutionThreadCount(int intoOperationExecutionThreadCount) {
1954
    this.intoOperationExecutionThreadCount = intoOperationExecutionThreadCount;
1✔
1955
  }
1✔
1956

1957
  public int getCompactionWriteThroughputMbPerSec() {
1958
    return compactionWriteThroughputMbPerSec;
1✔
1959
  }
1960

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

1965
  public boolean isEnableMemControl() {
1966
    return enableMemControl;
1✔
1967
  }
1968

1969
  public void setEnableMemControl(boolean enableMemControl) {
1970
    this.enableMemControl = enableMemControl;
1✔
1971
  }
1✔
1972

1973
  public long getMemtableSizeThreshold() {
1974
    return memtableSizeThreshold;
1✔
1975
  }
1976

1977
  public void setMemtableSizeThreshold(long memtableSizeThreshold) {
1978
    this.memtableSizeThreshold = memtableSizeThreshold;
1✔
1979
  }
1✔
1980

1981
  public boolean isEnableTimedFlushSeqMemtable() {
1982
    return enableTimedFlushSeqMemtable;
1✔
1983
  }
1984

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

1989
  public long getSeqMemtableFlushInterval() {
1990
    return seqMemtableFlushInterval;
1✔
1991
  }
1992

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

1997
  public long getSeqMemtableFlushCheckInterval() {
1998
    return seqMemtableFlushCheckInterval;
1✔
1999
  }
2000

2001
  public void setSeqMemtableFlushCheckInterval(long seqMemtableFlushCheckInterval) {
2002
    this.seqMemtableFlushCheckInterval = seqMemtableFlushCheckInterval;
1✔
2003
  }
1✔
2004

2005
  public boolean isEnableTimedFlushUnseqMemtable() {
2006
    return enableTimedFlushUnseqMemtable;
1✔
2007
  }
2008

2009
  public void setEnableTimedFlushUnseqMemtable(boolean enableTimedFlushUnseqMemtable) {
2010
    this.enableTimedFlushUnseqMemtable = enableTimedFlushUnseqMemtable;
1✔
2011
  }
1✔
2012

2013
  public long getUnseqMemtableFlushInterval() {
2014
    return unseqMemtableFlushInterval;
1✔
2015
  }
2016

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

2021
  public long getUnseqMemtableFlushCheckInterval() {
2022
    return unseqMemtableFlushCheckInterval;
1✔
2023
  }
2024

2025
  public void setUnseqMemtableFlushCheckInterval(long unseqMemtableFlushCheckInterval) {
2026
    this.unseqMemtableFlushCheckInterval = unseqMemtableFlushCheckInterval;
1✔
2027
  }
1✔
2028

2029
  public TVListSortAlgorithm getTvListSortAlgorithm() {
2030
    return tvListSortAlgorithm;
1✔
2031
  }
2032

2033
  public void setTvListSortAlgorithm(TVListSortAlgorithm tvListSortAlgorithm) {
2034
    this.tvListSortAlgorithm = tvListSortAlgorithm;
1✔
2035
  }
1✔
2036

2037
  public int getAvgSeriesPointNumberThreshold() {
2038
    return avgSeriesPointNumberThreshold;
1✔
2039
  }
2040

2041
  public void setAvgSeriesPointNumberThreshold(int avgSeriesPointNumberThreshold) {
2042
    this.avgSeriesPointNumberThreshold = avgSeriesPointNumberThreshold;
1✔
2043
  }
1✔
2044

2045
  public long getCrossCompactionFileSelectionTimeBudget() {
2046
    return crossCompactionFileSelectionTimeBudget;
1✔
2047
  }
2048

2049
  void setCrossCompactionFileSelectionTimeBudget(long crossCompactionFileSelectionTimeBudget) {
2050
    this.crossCompactionFileSelectionTimeBudget = crossCompactionFileSelectionTimeBudget;
1✔
2051
  }
1✔
2052

2053
  public boolean isRpcThriftCompressionEnable() {
2054
    return rpcThriftCompressionEnable;
1✔
2055
  }
2056

2057
  public void setRpcThriftCompressionEnable(boolean rpcThriftCompressionEnable) {
2058
    this.rpcThriftCompressionEnable = rpcThriftCompressionEnable;
1✔
2059
  }
1✔
2060

2061
  public boolean isMetaDataCacheEnable() {
2062
    return metaDataCacheEnable;
1✔
2063
  }
2064

2065
  public void setMetaDataCacheEnable(boolean metaDataCacheEnable) {
2066
    this.metaDataCacheEnable = metaDataCacheEnable;
1✔
2067
  }
1✔
2068

2069
  public long getAllocateMemoryForBloomFilterCache() {
2070
    return allocateMemoryForBloomFilterCache;
1✔
2071
  }
2072

2073
  public void setAllocateMemoryForBloomFilterCache(long allocateMemoryForBloomFilterCache) {
2074
    this.allocateMemoryForBloomFilterCache = allocateMemoryForBloomFilterCache;
×
2075
  }
×
2076

2077
  public long getAllocateMemoryForTimeSeriesMetaDataCache() {
2078
    return allocateMemoryForTimeSeriesMetaDataCache;
1✔
2079
  }
2080

2081
  public void setAllocateMemoryForTimeSeriesMetaDataCache(
2082
      long allocateMemoryForTimeSeriesMetaDataCache) {
2083
    this.allocateMemoryForTimeSeriesMetaDataCache = allocateMemoryForTimeSeriesMetaDataCache;
×
2084
  }
×
2085

2086
  public long getAllocateMemoryForChunkCache() {
2087
    return allocateMemoryForChunkCache;
1✔
2088
  }
2089

2090
  public void setAllocateMemoryForChunkCache(long allocateMemoryForChunkCache) {
2091
    this.allocateMemoryForChunkCache = allocateMemoryForChunkCache;
×
2092
  }
×
2093

2094
  public long getAllocateMemoryForCoordinator() {
2095
    return allocateMemoryForCoordinator;
×
2096
  }
2097

2098
  public void setAllocateMemoryForCoordinator(long allocateMemoryForCoordinator) {
2099
    this.allocateMemoryForCoordinator = allocateMemoryForCoordinator;
×
2100
  }
×
2101

2102
  public long getAllocateMemoryForOperators() {
2103
    return allocateMemoryForOperators;
1✔
2104
  }
2105

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

2110
  public long getAllocateMemoryForDataExchange() {
2111
    return allocateMemoryForDataExchange;
1✔
2112
  }
2113

2114
  public void setAllocateMemoryForDataExchange(long allocateMemoryForDataExchange) {
2115
    this.allocateMemoryForDataExchange = allocateMemoryForDataExchange;
×
2116
    this.maxBytesPerFragmentInstance = allocateMemoryForDataExchange / queryThreadCount;
×
2117
  }
×
2118

2119
  public long getAllocateMemoryForTimeIndex() {
2120
    return allocateMemoryForTimeIndex;
1✔
2121
  }
2122

2123
  public void setAllocateMemoryForTimeIndex(long allocateMemoryForTimeIndex) {
2124
    this.allocateMemoryForTimeIndex = allocateMemoryForTimeIndex;
×
2125
  }
×
2126

2127
  public long getAllocateMemoryForTimePartitionInfo() {
2128
    return allocateMemoryForTimePartitionInfo;
1✔
2129
  }
2130

2131
  public void setAllocateMemoryForTimePartitionInfo(long allocateMemoryForTimePartitionInfo) {
2132
    this.allocateMemoryForTimePartitionInfo = allocateMemoryForTimePartitionInfo;
×
2133
  }
×
2134

2135
  public long getAllocateMemoryForWALPipeCache() {
2136
    return allocateMemoryForWALPipeCache;
1✔
2137
  }
2138

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

2143
  public boolean isEnableQueryMemoryEstimation() {
2144
    return enableQueryMemoryEstimation;
1✔
2145
  }
2146

2147
  public void setEnableQueryMemoryEstimation(boolean enableQueryMemoryEstimation) {
2148
    this.enableQueryMemoryEstimation = enableQueryMemoryEstimation;
1✔
2149
  }
1✔
2150

2151
  public boolean isAutoCreateSchemaEnabled() {
2152
    return enableAutoCreateSchema;
1✔
2153
  }
2154

2155
  public void setAutoCreateSchemaEnabled(boolean enableAutoCreateSchema) {
2156
    this.enableAutoCreateSchema = enableAutoCreateSchema;
1✔
2157
  }
1✔
2158

2159
  public TSDataType getBooleanStringInferType() {
2160
    return booleanStringInferType;
1✔
2161
  }
2162

2163
  public void setBooleanStringInferType(TSDataType booleanStringInferType) {
2164
    this.booleanStringInferType = booleanStringInferType;
1✔
2165
  }
1✔
2166

2167
  public TSDataType getIntegerStringInferType() {
2168
    return integerStringInferType;
1✔
2169
  }
2170

2171
  public void setIntegerStringInferType(TSDataType integerStringInferType) {
2172
    this.integerStringInferType = integerStringInferType;
1✔
2173
  }
1✔
2174

2175
  public void setLongStringInferType(TSDataType longStringInferType) {
2176
    this.longStringInferType = longStringInferType;
1✔
2177
  }
1✔
2178

2179
  public TSDataType getLongStringInferType() {
2180
    return longStringInferType;
1✔
2181
  }
2182

2183
  public TSDataType getFloatingStringInferType() {
2184
    return floatingStringInferType;
1✔
2185
  }
2186

2187
  public void setFloatingStringInferType(TSDataType floatingNumberStringInferType) {
2188
    this.floatingStringInferType = floatingNumberStringInferType;
1✔
2189
  }
1✔
2190

2191
  public TSDataType getNanStringInferType() {
2192
    return nanStringInferType;
1✔
2193
  }
2194

2195
  public void setNanStringInferType(TSDataType nanStringInferType) {
2196
    if (nanStringInferType != TSDataType.DOUBLE
1✔
2197
        && nanStringInferType != TSDataType.FLOAT
2198
        && nanStringInferType != TSDataType.TEXT) {
2199
      throw new IllegalArgumentException(
×
2200
          "Config Property nan_string_infer_type can only be FLOAT, DOUBLE or TEXT but is "
2201
              + nanStringInferType);
2202
    }
2203
    this.nanStringInferType = nanStringInferType;
1✔
2204
  }
1✔
2205

2206
  public int getDefaultStorageGroupLevel() {
2207
    return defaultStorageGroupLevel;
1✔
2208
  }
2209

2210
  void setDefaultStorageGroupLevel(int defaultStorageGroupLevel) {
2211
    this.defaultStorageGroupLevel = defaultStorageGroupLevel;
1✔
2212
  }
1✔
2213

2214
  public TSEncoding getDefaultBooleanEncoding() {
2215
    return defaultBooleanEncoding;
1✔
2216
  }
2217

2218
  public void setDefaultBooleanEncoding(TSEncoding defaultBooleanEncoding) {
2219
    this.defaultBooleanEncoding = defaultBooleanEncoding;
×
2220
  }
×
2221

2222
  void setDefaultBooleanEncoding(String defaultBooleanEncoding) {
2223
    this.defaultBooleanEncoding = TSEncoding.valueOf(defaultBooleanEncoding);
1✔
2224
  }
1✔
2225

2226
  public TSEncoding getDefaultInt32Encoding() {
2227
    return defaultInt32Encoding;
1✔
2228
  }
2229

2230
  public void setDefaultInt32Encoding(TSEncoding defaultInt32Encoding) {
2231
    this.defaultInt32Encoding = defaultInt32Encoding;
×
2232
  }
×
2233

2234
  void setDefaultInt32Encoding(String defaultInt32Encoding) {
2235
    this.defaultInt32Encoding = TSEncoding.valueOf(defaultInt32Encoding);
1✔
2236
  }
1✔
2237

2238
  public TSEncoding getDefaultInt64Encoding() {
2239
    return defaultInt64Encoding;
1✔
2240
  }
2241

2242
  public void setDefaultInt64Encoding(TSEncoding defaultInt64Encoding) {
2243
    this.defaultInt64Encoding = defaultInt64Encoding;
×
2244
  }
×
2245

2246
  void setDefaultInt64Encoding(String defaultInt64Encoding) {
2247
    this.defaultInt64Encoding = TSEncoding.valueOf(defaultInt64Encoding);
1✔
2248
  }
1✔
2249

2250
  public TSEncoding getDefaultFloatEncoding() {
2251
    return defaultFloatEncoding;
1✔
2252
  }
2253

2254
  public void setDefaultFloatEncoding(TSEncoding defaultFloatEncoding) {
2255
    this.defaultFloatEncoding = defaultFloatEncoding;
×
2256
  }
×
2257

2258
  void setDefaultFloatEncoding(String defaultFloatEncoding) {
2259
    this.defaultFloatEncoding = TSEncoding.valueOf(defaultFloatEncoding);
1✔
2260
  }
1✔
2261

2262
  public TSEncoding getDefaultDoubleEncoding() {
2263
    return defaultDoubleEncoding;
1✔
2264
  }
2265

2266
  public void setDefaultDoubleEncoding(TSEncoding defaultDoubleEncoding) {
2267
    this.defaultDoubleEncoding = defaultDoubleEncoding;
×
2268
  }
×
2269

2270
  void setDefaultDoubleEncoding(String defaultDoubleEncoding) {
2271
    this.defaultDoubleEncoding = TSEncoding.valueOf(defaultDoubleEncoding);
1✔
2272
  }
1✔
2273

2274
  public TSEncoding getDefaultTextEncoding() {
2275
    return defaultTextEncoding;
1✔
2276
  }
2277

2278
  public void setDefaultTextEncoding(TSEncoding defaultTextEncoding) {
2279
    this.defaultTextEncoding = defaultTextEncoding;
×
2280
  }
×
2281

2282
  void setDefaultTextEncoding(String defaultTextEncoding) {
2283
    this.defaultTextEncoding = TSEncoding.valueOf(defaultTextEncoding);
1✔
2284
  }
1✔
2285

2286
  FSType getTsFileStorageFs() {
2287
    return tsFileStorageFs;
1✔
2288
  }
2289

2290
  void setTsFileStorageFs(String tsFileStorageFs) {
2291
    this.tsFileStorageFs = FSType.valueOf(tsFileStorageFs);
1✔
2292
  }
1✔
2293

2294
  public boolean isEnableHDFS() {
2295
    return enableHDFS;
1✔
2296
  }
2297

2298
  public void setEnableHDFS(boolean enableHDFS) {
2299
    this.enableHDFS = enableHDFS;
1✔
2300
  }
1✔
2301

2302
  String getCoreSitePath() {
2303
    return coreSitePath;
1✔
2304
  }
2305

2306
  void setCoreSitePath(String coreSitePath) {
2307
    this.coreSitePath = coreSitePath;
1✔
2308
  }
1✔
2309

2310
  String getHdfsSitePath() {
2311
    return hdfsSitePath;
1✔
2312
  }
2313

2314
  void setHdfsSitePath(String hdfsSitePath) {
2315
    this.hdfsSitePath = hdfsSitePath;
1✔
2316
  }
1✔
2317

2318
  public String[] getHdfsIp() {
2319
    return hdfsIp.split(",");
×
2320
  }
2321

2322
  String getRawHDFSIp() {
2323
    return hdfsIp;
1✔
2324
  }
2325

2326
  void setHdfsIp(String[] hdfsIp) {
2327
    this.hdfsIp = String.join(",", hdfsIp);
1✔
2328
  }
1✔
2329

2330
  String getHdfsPort() {
2331
    return hdfsPort;
1✔
2332
  }
2333

2334
  void setHdfsPort(String hdfsPort) {
2335
    this.hdfsPort = hdfsPort;
1✔
2336
  }
1✔
2337

2338
  public int getSettleThreadNum() {
2339
    return settleThreadNum;
×
2340
  }
2341

2342
  String getDfsNameServices() {
2343
    return dfsNameServices;
1✔
2344
  }
2345

2346
  void setDfsNameServices(String dfsNameServices) {
2347
    this.dfsNameServices = dfsNameServices;
1✔
2348
  }
1✔
2349

2350
  public String[] getDfsHaNamenodes() {
2351
    return dfsHaNamenodes.split(",");
×
2352
  }
2353

2354
  String getRawDfsHaNamenodes() {
2355
    return dfsHaNamenodes;
1✔
2356
  }
2357

2358
  void setDfsHaNamenodes(String[] dfsHaNamenodes) {
2359
    this.dfsHaNamenodes = String.join(",", dfsHaNamenodes);
1✔
2360
  }
1✔
2361

2362
  boolean isDfsHaAutomaticFailoverEnabled() {
2363
    return dfsHaAutomaticFailoverEnabled;
1✔
2364
  }
2365

2366
  void setDfsHaAutomaticFailoverEnabled(boolean dfsHaAutomaticFailoverEnabled) {
2367
    this.dfsHaAutomaticFailoverEnabled = dfsHaAutomaticFailoverEnabled;
1✔
2368
  }
1✔
2369

2370
  String getDfsClientFailoverProxyProvider() {
2371
    return dfsClientFailoverProxyProvider;
1✔
2372
  }
2373

2374
  void setDfsClientFailoverProxyProvider(String dfsClientFailoverProxyProvider) {
2375
    this.dfsClientFailoverProxyProvider = dfsClientFailoverProxyProvider;
1✔
2376
  }
1✔
2377

2378
  boolean isUseKerberos() {
2379
    return useKerberos;
1✔
2380
  }
2381

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

2386
  String getKerberosKeytabFilePath() {
2387
    return kerberosKeytabFilePath;
1✔
2388
  }
2389

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

2394
  String getKerberosPrincipal() {
2395
    return kerberosPrincipal;
1✔
2396
  }
2397

2398
  void setKerberosPrincipal(String kerberosPrincipal) {
2399
    this.kerberosPrincipal = kerberosPrincipal;
1✔
2400
  }
1✔
2401

2402
  public int getThriftServerAwaitTimeForStopService() {
2403
    return thriftServerAwaitTimeForStopService;
1✔
2404
  }
2405

2406
  public void setThriftServerAwaitTimeForStopService(int thriftServerAwaitTimeForStopService) {
2407
    this.thriftServerAwaitTimeForStopService = thriftServerAwaitTimeForStopService;
1✔
2408
  }
1✔
2409

2410
  public boolean isEnableMQTTService() {
2411
    return enableMQTTService;
×
2412
  }
2413

2414
  public void setEnableMQTTService(boolean enableMQTTService) {
2415
    this.enableMQTTService = enableMQTTService;
1✔
2416
  }
1✔
2417

2418
  public String getMqttHost() {
2419
    return mqttHost;
×
2420
  }
2421

2422
  public void setMqttHost(String mqttHost) {
2423
    this.mqttHost = mqttHost;
1✔
2424
  }
1✔
2425

2426
  public int getMqttPort() {
2427
    return mqttPort;
×
2428
  }
2429

2430
  public void setMqttPort(int mqttPort) {
2431
    this.mqttPort = mqttPort;
×
2432
  }
×
2433

2434
  public int getMqttHandlerPoolSize() {
2435
    return mqttHandlerPoolSize;
×
2436
  }
2437

2438
  public void setMqttHandlerPoolSize(int mqttHandlerPoolSize) {
2439
    this.mqttHandlerPoolSize = mqttHandlerPoolSize;
×
2440
  }
×
2441

2442
  public String getMqttPayloadFormatter() {
2443
    return mqttPayloadFormatter;
×
2444
  }
2445

2446
  public void setMqttPayloadFormatter(String mqttPayloadFormatter) {
2447
    this.mqttPayloadFormatter = mqttPayloadFormatter;
×
2448
  }
×
2449

2450
  public int getMqttMaxMessageSize() {
2451
    return mqttMaxMessageSize;
×
2452
  }
2453

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

2458
  public int getTagAttributeFlushInterval() {
2459
    return tagAttributeFlushInterval;
1✔
2460
  }
2461

2462
  public void setTagAttributeFlushInterval(int tagAttributeFlushInterval) {
2463
    this.tagAttributeFlushInterval = tagAttributeFlushInterval;
1✔
2464
  }
1✔
2465

2466
  public int getPrimitiveArraySize() {
2467
    return primitiveArraySize;
1✔
2468
  }
2469

2470
  public void setPrimitiveArraySize(int primitiveArraySize) {
2471
    this.primitiveArraySize = primitiveArraySize;
1✔
2472
  }
1✔
2473

2474
  public long getStartUpNanosecond() {
2475
    return startUpNanosecond;
1✔
2476
  }
2477

2478
  public int getThriftMaxFrameSize() {
2479
    return thriftMaxFrameSize;
1✔
2480
  }
2481

2482
  public void setThriftMaxFrameSize(int thriftMaxFrameSize) {
2483
    this.thriftMaxFrameSize = thriftMaxFrameSize;
1✔
2484
    RpcTransportFactory.setThriftMaxFrameSize(this.thriftMaxFrameSize);
1✔
2485
  }
1✔
2486

2487
  public int getThriftDefaultBufferSize() {
2488
    return thriftDefaultBufferSize;
1✔
2489
  }
2490

2491
  public void setThriftDefaultBufferSize(int thriftDefaultBufferSize) {
2492
    this.thriftDefaultBufferSize = thriftDefaultBufferSize;
1✔
2493
    RpcTransportFactory.setDefaultBufferCapacity(this.thriftDefaultBufferSize);
1✔
2494
  }
1✔
2495

2496
  public int getCheckPeriodWhenInsertBlocked() {
2497
    return checkPeriodWhenInsertBlocked;
1✔
2498
  }
2499

2500
  public void setCheckPeriodWhenInsertBlocked(int checkPeriodWhenInsertBlocked) {
2501
    this.checkPeriodWhenInsertBlocked = checkPeriodWhenInsertBlocked;
1✔
2502
  }
1✔
2503

2504
  public int getMaxWaitingTimeWhenInsertBlocked() {
2505
    return maxWaitingTimeWhenInsertBlockedInMs;
1✔
2506
  }
2507

2508
  public void setMaxWaitingTimeWhenInsertBlocked(int maxWaitingTimeWhenInsertBlocked) {
2509
    this.maxWaitingTimeWhenInsertBlockedInMs = maxWaitingTimeWhenInsertBlocked;
1✔
2510
  }
1✔
2511

2512
  public int getFrequencyIntervalInMinute() {
2513
    return frequencyIntervalInMinute;
1✔
2514
  }
2515

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

2520
  public long getSlowQueryThreshold() {
2521
    return slowQueryThreshold;
1✔
2522
  }
2523

2524
  public void setSlowQueryThreshold(long slowQueryThreshold) {
2525
    this.slowQueryThreshold = slowQueryThreshold;
1✔
2526
  }
1✔
2527

2528
  public boolean isEnableIndex() {
2529
    return enableIndex;
1✔
2530
  }
2531

2532
  public void setEnableIndex(boolean enableIndex) {
2533
    this.enableIndex = enableIndex;
1✔
2534
  }
1✔
2535

2536
  void setConcurrentIndexBuildThread(int concurrentIndexBuildThread) {
2537
    this.concurrentIndexBuildThread = concurrentIndexBuildThread;
1✔
2538
  }
1✔
2539

2540
  public int getConcurrentIndexBuildThread() {
2541
    return concurrentIndexBuildThread;
1✔
2542
  }
2543

2544
  public String getIndexRootFolder() {
2545
    return indexRootFolder;
1✔
2546
  }
2547

2548
  public void setIndexRootFolder(String indexRootFolder) {
2549
    this.indexRootFolder = indexRootFolder;
1✔
2550
  }
1✔
2551

2552
  public int getDefaultIndexWindowRange() {
2553
    return defaultIndexWindowRange;
1✔
2554
  }
2555

2556
  public void setDefaultIndexWindowRange(int defaultIndexWindowRange) {
2557
    this.defaultIndexWindowRange = defaultIndexWindowRange;
1✔
2558
  }
1✔
2559

2560
  public int getDataRegionNum() {
2561
    return dataRegionNum;
1✔
2562
  }
2563

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

2568
  public long getRecoveryLogIntervalInMs() {
2569
    return recoveryLogIntervalInMs;
1✔
2570
  }
2571

2572
  public void setRecoveryLogIntervalInMs(long recoveryLogIntervalInMs) {
2573
    this.recoveryLogIntervalInMs = recoveryLogIntervalInMs;
1✔
2574
  }
1✔
2575

2576
  public boolean isRpcAdvancedCompressionEnable() {
2577
    return rpcAdvancedCompressionEnable;
1✔
2578
  }
2579

2580
  public void setRpcAdvancedCompressionEnable(boolean rpcAdvancedCompressionEnable) {
2581
    this.rpcAdvancedCompressionEnable = rpcAdvancedCompressionEnable;
1✔
2582
    RpcTransportFactory.setUseSnappy(this.rpcAdvancedCompressionEnable);
1✔
2583
  }
1✔
2584

2585
  public int getMlogBufferSize() {
2586
    return mlogBufferSize;
1✔
2587
  }
2588

2589
  public void setMlogBufferSize(int mlogBufferSize) {
2590
    this.mlogBufferSize = mlogBufferSize;
1✔
2591
  }
1✔
2592

2593
  public long getSyncMlogPeriodInMs() {
2594
    return syncMlogPeriodInMs;
1✔
2595
  }
2596

2597
  public void setSyncMlogPeriodInMs(long syncMlogPeriodInMs) {
2598
    this.syncMlogPeriodInMs = syncMlogPeriodInMs;
1✔
2599
  }
1✔
2600

2601
  public int getTlogBufferSize() {
2602
    return tlogBufferSize;
1✔
2603
  }
2604

2605
  public void setTlogBufferSize(int tlogBufferSize) {
2606
    this.tlogBufferSize = tlogBufferSize;
1✔
2607
  }
1✔
2608

2609
  public boolean isEnableRpcService() {
2610
    return enableRpcService;
×
2611
  }
2612

2613
  public void setEnableRpcService(boolean enableRpcService) {
2614
    this.enableRpcService = enableRpcService;
×
2615
  }
×
2616

2617
  public int getIoTaskQueueSizeForFlushing() {
2618
    return ioTaskQueueSizeForFlushing;
1✔
2619
  }
2620

2621
  public void setIoTaskQueueSizeForFlushing(int ioTaskQueueSizeForFlushing) {
2622
    this.ioTaskQueueSizeForFlushing = ioTaskQueueSizeForFlushing;
1✔
2623
  }
1✔
2624

2625
  public boolean isEnableSeqSpaceCompaction() {
2626
    return enableSeqSpaceCompaction;
1✔
2627
  }
2628

2629
  public void setEnableSeqSpaceCompaction(boolean enableSeqSpaceCompaction) {
2630
    this.enableSeqSpaceCompaction = enableSeqSpaceCompaction;
1✔
2631
  }
1✔
2632

2633
  public boolean isEnableUnseqSpaceCompaction() {
2634
    return enableUnseqSpaceCompaction;
1✔
2635
  }
2636

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

2641
  public boolean isEnableCrossSpaceCompaction() {
2642
    return enableCrossSpaceCompaction;
1✔
2643
  }
2644

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

2649
  public boolean isEnableMLNodeService() {
2650
    return enableMLNodeService;
1✔
2651
  }
2652

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

2657
  public InnerSequenceCompactionSelector getInnerSequenceCompactionSelector() {
2658
    return innerSequenceCompactionSelector;
1✔
2659
  }
2660

2661
  public void setInnerSequenceCompactionSelector(
2662
      InnerSequenceCompactionSelector innerSequenceCompactionSelector) {
2663
    this.innerSequenceCompactionSelector = innerSequenceCompactionSelector;
1✔
2664
  }
1✔
2665

2666
  public InnerUnsequenceCompactionSelector getInnerUnsequenceCompactionSelector() {
2667
    return innerUnsequenceCompactionSelector;
1✔
2668
  }
2669

2670
  public void setInnerUnsequenceCompactionSelector(
2671
      InnerUnsequenceCompactionSelector innerUnsequenceCompactionSelector) {
2672
    this.innerUnsequenceCompactionSelector = innerUnsequenceCompactionSelector;
1✔
2673
  }
1✔
2674

2675
  public InnerSeqCompactionPerformer getInnerSeqCompactionPerformer() {
2676
    return innerSeqCompactionPerformer;
1✔
2677
  }
2678

2679
  public void setInnerSeqCompactionPerformer(
2680
      InnerSeqCompactionPerformer innerSeqCompactionPerformer) {
2681
    this.innerSeqCompactionPerformer = innerSeqCompactionPerformer;
1✔
2682
  }
1✔
2683

2684
  public InnerUnseqCompactionPerformer getInnerUnseqCompactionPerformer() {
2685
    return innerUnseqCompactionPerformer;
1✔
2686
  }
2687

2688
  public void setInnerUnseqCompactionPerformer(
2689
      InnerUnseqCompactionPerformer innerUnseqCompactionPerformer) {
2690
    this.innerUnseqCompactionPerformer = innerUnseqCompactionPerformer;
1✔
2691
  }
1✔
2692

2693
  public CrossCompactionSelector getCrossCompactionSelector() {
2694
    return crossCompactionSelector;
1✔
2695
  }
2696

2697
  public void setCrossCompactionSelector(CrossCompactionSelector crossCompactionSelector) {
2698
    this.crossCompactionSelector = crossCompactionSelector;
1✔
2699
  }
1✔
2700

2701
  public CrossCompactionPerformer getCrossCompactionPerformer() {
2702
    return crossCompactionPerformer;
1✔
2703
  }
2704

2705
  public void setCrossCompactionPerformer(CrossCompactionPerformer crossCompactionPerformer) {
2706
    this.crossCompactionPerformer = crossCompactionPerformer;
1✔
2707
  }
1✔
2708

2709
  public CompactionPriority getCompactionPriority() {
2710
    return compactionPriority;
1✔
2711
  }
2712

2713
  public void setCompactionPriority(CompactionPriority compactionPriority) {
2714
    this.compactionPriority = compactionPriority;
1✔
2715
  }
1✔
2716

2717
  public boolean isEnableCompactionMemControl() {
2718
    return enableCompactionMemControl;
1✔
2719
  }
2720

2721
  public void setEnableCompactionMemControl(boolean enableCompactionMemControl) {
2722
    this.enableCompactionMemControl = enableCompactionMemControl;
1✔
2723
  }
1✔
2724

2725
  public long getTargetCompactionFileSize() {
2726
    return targetCompactionFileSize;
1✔
2727
  }
2728

2729
  public void setTargetCompactionFileSize(long targetCompactionFileSize) {
2730
    this.targetCompactionFileSize = targetCompactionFileSize;
1✔
2731
  }
1✔
2732

2733
  public long getTargetChunkSize() {
2734
    return targetChunkSize;
1✔
2735
  }
2736

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

2741
  public long getChunkSizeLowerBoundInCompaction() {
2742
    return chunkSizeLowerBoundInCompaction;
1✔
2743
  }
2744

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

2749
  public long getTargetChunkPointNum() {
2750
    return targetChunkPointNum;
1✔
2751
  }
2752

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

2757
  public long getChunkPointNumLowerBoundInCompaction() {
2758
    return chunkPointNumLowerBoundInCompaction;
1✔
2759
  }
2760

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

2765
  public long getCompactionAcquireWriteLockTimeout() {
2766
    return compactionAcquireWriteLockTimeout;
×
2767
  }
2768

2769
  public void setCompactionAcquireWriteLockTimeout(long compactionAcquireWriteLockTimeout) {
2770
    this.compactionAcquireWriteLockTimeout = compactionAcquireWriteLockTimeout;
×
2771
  }
×
2772

2773
  public long getCompactionScheduleIntervalInMs() {
2774
    return compactionScheduleIntervalInMs;
1✔
2775
  }
2776

2777
  public void setCompactionScheduleIntervalInMs(long compactionScheduleIntervalInMs) {
2778
    this.compactionScheduleIntervalInMs = compactionScheduleIntervalInMs;
1✔
2779
  }
1✔
2780

2781
  public int getFileLimitPerInnerTask() {
2782
    return fileLimitPerInnerTask;
1✔
2783
  }
2784

2785
  public void setFileLimitPerInnerTask(int fileLimitPerInnerTask) {
2786
    this.fileLimitPerInnerTask = fileLimitPerInnerTask;
1✔
2787
  }
1✔
2788

2789
  public int getFileLimitPerCrossTask() {
2790
    return fileLimitPerCrossTask;
1✔
2791
  }
2792

2793
  public int getTotalFileLimitForCrossTask() {
2794
    return totalFileLimitForCrossTask;
1✔
2795
  }
2796

2797
  public void setFileLimitPerCrossTask(int fileLimitPerCrossTask) {
2798
    this.fileLimitPerCrossTask = fileLimitPerCrossTask;
1✔
2799
  }
1✔
2800

2801
  public long getMaxCrossCompactionCandidateFileSize() {
2802
    return maxCrossCompactionCandidateFileSize;
1✔
2803
  }
2804

2805
  public void setMaxCrossCompactionCandidateFileSize(long maxCrossCompactionCandidateFileSize) {
2806
    this.maxCrossCompactionCandidateFileSize = maxCrossCompactionCandidateFileSize;
1✔
2807
  }
1✔
2808

2809
  public int getMinCrossCompactionUnseqFileLevel() {
2810
    return minCrossCompactionUnseqFileLevel;
1✔
2811
  }
2812

2813
  public void setMinCrossCompactionUnseqFileLevel(int minCrossCompactionUnseqFileLevel) {
2814
    this.minCrossCompactionUnseqFileLevel = minCrossCompactionUnseqFileLevel;
1✔
2815
  }
1✔
2816

2817
  public long getCompactionSubmissionIntervalInMs() {
2818
    return compactionSubmissionIntervalInMs;
1✔
2819
  }
2820

2821
  public void setCompactionSubmissionIntervalInMs(long interval) {
2822
    compactionSubmissionIntervalInMs = interval;
1✔
2823
  }
1✔
2824

2825
  public int getSubCompactionTaskNum() {
2826
    return subCompactionTaskNum;
1✔
2827
  }
2828

2829
  public void setSubCompactionTaskNum(int subCompactionTaskNum) {
2830
    this.subCompactionTaskNum = subCompactionTaskNum;
1✔
2831
  }
1✔
2832

2833
  public int getCachedMNodeSizeInPBTreeMode() {
2834
    return cachedMNodeSizeInPBTreeMode;
1✔
2835
  }
2836

2837
  @TestOnly
2838
  public void setCachedMNodeSizeInPBTreeMode(int cachedMNodeSizeInPBTreeMode) {
2839
    this.cachedMNodeSizeInPBTreeMode = cachedMNodeSizeInPBTreeMode;
1✔
2840
  }
1✔
2841

2842
  public short getMinimumSegmentInPBTree() {
2843
    return minimumSegmentInPBTree;
1✔
2844
  }
2845

2846
  public void setMinimumSegmentInPBTree(short minimumSegmentInPBTree) {
2847
    this.minimumSegmentInPBTree = minimumSegmentInPBTree;
1✔
2848
  }
1✔
2849

2850
  public int getPageCacheSizeInPBTree() {
2851
    return pageCacheSizeInPBTree;
1✔
2852
  }
2853

2854
  public void setPageCacheSizeInPBTree(int pageCacheSizeInPBTree) {
2855
    this.pageCacheSizeInPBTree = pageCacheSizeInPBTree;
1✔
2856
  }
1✔
2857

2858
  public int getPBTreeLogSize() {
2859
    return pbTreeLogSize;
1✔
2860
  }
2861

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

2866
  public int getMaxMeasurementNumOfInternalRequest() {
2867
    return maxMeasurementNumOfInternalRequest;
1✔
2868
  }
2869

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

2874
  public String getInternalAddress() {
2875
    return internalAddress;
1✔
2876
  }
2877

2878
  public void setInternalAddress(String internalAddress) {
2879
    this.internalAddress = internalAddress;
1✔
2880
  }
1✔
2881

2882
  public int getInternalPort() {
2883
    return internalPort;
1✔
2884
  }
2885

2886
  public void setInternalPort(int internalPort) {
2887
    this.internalPort = internalPort;
1✔
2888
  }
1✔
2889

2890
  public int getMLNodePort() {
2891
    return mlNodePort;
1✔
2892
  }
2893

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

2898
  public int getDataRegionConsensusPort() {
2899
    return dataRegionConsensusPort;
1✔
2900
  }
2901

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

2906
  public int getSchemaRegionConsensusPort() {
2907
    return schemaRegionConsensusPort;
1✔
2908
  }
2909

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

2914
  public List<TEndPoint> getTargetConfigNodeList() {
2915
    return targetConfigNodeList;
×
2916
  }
2917

2918
  public void setTargetConfigNodeList(List<TEndPoint> targetConfigNodeList) {
2919
    this.targetConfigNodeList = targetConfigNodeList;
×
2920
  }
×
2921

2922
  public long getJoinClusterRetryIntervalMs() {
2923
    return joinClusterRetryIntervalMs;
1✔
2924
  }
2925

2926
  public void setJoinClusterRetryIntervalMs(long joinClusterRetryIntervalMs) {
2927
    this.joinClusterRetryIntervalMs = joinClusterRetryIntervalMs;
1✔
2928
  }
1✔
2929

2930
  public String getDataRegionConsensusProtocolClass() {
2931
    return dataRegionConsensusProtocolClass;
1✔
2932
  }
2933

2934
  public void setDataRegionConsensusProtocolClass(String dataRegionConsensusProtocolClass) {
2935
    this.dataRegionConsensusProtocolClass = dataRegionConsensusProtocolClass;
×
2936
  }
×
2937

2938
  public String getSchemaRegionConsensusProtocolClass() {
2939
    return schemaRegionConsensusProtocolClass;
1✔
2940
  }
2941

2942
  public void setSchemaRegionConsensusProtocolClass(String schemaRegionConsensusProtocolClass) {
2943
    this.schemaRegionConsensusProtocolClass = schemaRegionConsensusProtocolClass;
1✔
2944
  }
1✔
2945

2946
  public String getSeriesPartitionExecutorClass() {
2947
    return seriesPartitionExecutorClass;
1✔
2948
  }
2949

2950
  public void setSeriesPartitionExecutorClass(String seriesPartitionExecutorClass) {
2951
    this.seriesPartitionExecutorClass = seriesPartitionExecutorClass;
×
2952
  }
×
2953

2954
  public int getSeriesPartitionSlotNum() {
2955
    return seriesPartitionSlotNum;
1✔
2956
  }
2957

2958
  public void setSeriesPartitionSlotNum(int seriesPartitionSlotNum) {
2959
    this.seriesPartitionSlotNum = seriesPartitionSlotNum;
×
2960
  }
×
2961

2962
  public int getMppDataExchangePort() {
2963
    return mppDataExchangePort;
1✔
2964
  }
2965

2966
  public void setMppDataExchangePort(int mppDataExchangePort) {
2967
    this.mppDataExchangePort = mppDataExchangePort;
1✔
2968
  }
1✔
2969

2970
  public int getMppDataExchangeCorePoolSize() {
2971
    return mppDataExchangeCorePoolSize;
1✔
2972
  }
2973

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

2978
  public int getMppDataExchangeMaxPoolSize() {
2979
    return mppDataExchangeMaxPoolSize;
1✔
2980
  }
2981

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

2986
  public int getMppDataExchangeKeepAliveTimeInMs() {
2987
    return mppDataExchangeKeepAliveTimeInMs;
1✔
2988
  }
2989

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

2994
  public int getConnectionTimeoutInMS() {
2995
    return connectionTimeoutInMS;
1✔
2996
  }
2997

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

3002
  public int getMaxClientNumForEachNode() {
3003
    return maxClientNumForEachNode;
1✔
3004
  }
3005

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

3010
  public int getCoreClientNumForEachNode() {
3011
    return coreClientNumForEachNode;
1✔
3012
  }
3013

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

3018
  public int getSelectorNumOfClientManager() {
3019
    return selectorNumOfClientManager;
1✔
3020
  }
3021

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

3026
  public boolean isClusterMode() {
3027
    return isClusterMode;
1✔
3028
  }
3029

3030
  public void setClusterMode(boolean isClusterMode) {
3031
    this.isClusterMode = isClusterMode;
1✔
3032
    checkMultiDirStrategyClassName();
1✔
3033
  }
1✔
3034

3035
  public String getClusterName() {
3036
    return clusterName;
1✔
3037
  }
3038

3039
  public void setClusterName(String clusterName) {
3040
    this.clusterName = clusterName;
1✔
3041
  }
1✔
3042

3043
  public int getDataNodeId() {
3044
    return dataNodeId;
1✔
3045
  }
3046

3047
  public void setDataNodeId(int dataNodeId) {
3048
    this.dataNodeId = dataNodeId;
1✔
3049
  }
1✔
3050

3051
  public int getPartitionCacheSize() {
3052
    return partitionCacheSize;
1✔
3053
  }
3054

3055
  public String getExtPipeDir() {
3056
    return extPipeDir;
1✔
3057
  }
3058

3059
  public void setExtPipeDir(String extPipeDir) {
3060
    this.extPipeDir = extPipeDir;
1✔
3061
  }
1✔
3062

3063
  public void setPartitionCacheSize(int partitionCacheSize) {
3064
    this.partitionCacheSize = partitionCacheSize;
1✔
3065
  }
1✔
3066

3067
  public int getDevicePathCacheSize() {
3068
    return devicePathCacheSize;
1✔
3069
  }
3070

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

3075
  public int getAuthorCacheSize() {
3076
    return authorCacheSize;
1✔
3077
  }
3078

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

3083
  public int getAuthorCacheExpireTime() {
3084
    return authorCacheExpireTime;
1✔
3085
  }
3086

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

3091
  public int getTriggerForwardMaxQueueNumber() {
3092
    return triggerForwardMaxQueueNumber;
1✔
3093
  }
3094

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

3099
  public int getTriggerForwardMaxSizePerQueue() {
3100
    return triggerForwardMaxSizePerQueue;
1✔
3101
  }
3102

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

3107
  public int getTriggerForwardBatchSize() {
3108
    return triggerForwardBatchSize;
1✔
3109
  }
3110

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

3115
  public int getTriggerForwardHTTPPoolSize() {
3116
    return triggerForwardHTTPPoolSize;
1✔
3117
  }
3118

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

3123
  public int getTriggerForwardHTTPPOOLMaxPerRoute() {
3124
    return triggerForwardHTTPPOOLMaxPerRoute;
1✔
3125
  }
3126

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

3131
  public int getTriggerForwardMQTTPoolSize() {
3132
    return triggerForwardMQTTPoolSize;
1✔
3133
  }
3134

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

3139
  public int getRetryNumToFindStatefulTrigger() {
3140
    return retryNumToFindStatefulTrigger;
1✔
3141
  }
3142

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

3147
  public int getCoordinatorReadExecutorSize() {
3148
    return coordinatorReadExecutorSize;
1✔
3149
  }
3150

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

3155
  public int getCoordinatorWriteExecutorSize() {
3156
    return coordinatorWriteExecutorSize;
1✔
3157
  }
3158

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

3163
  public TEndPoint getAddressAndPort() {
3164
    return new TEndPoint(rpcAddress, rpcPort);
×
3165
  }
3166

3167
  public int[] getSchemaMemoryProportion() {
3168
    return schemaMemoryProportion;
1✔
3169
  }
3170

3171
  public void setSchemaMemoryProportion(int[] schemaMemoryProportion) {
3172
    this.schemaMemoryProportion = schemaMemoryProportion;
×
3173
  }
×
3174

3175
  public long getAllocateMemoryForSchemaRegion() {
3176
    return allocateMemoryForSchemaRegion;
1✔
3177
  }
3178

3179
  public void setAllocateMemoryForSchemaRegion(long allocateMemoryForSchemaRegion) {
3180
    this.allocateMemoryForSchemaRegion = allocateMemoryForSchemaRegion;
1✔
3181
  }
1✔
3182

3183
  public long getAllocateMemoryForSchemaCache() {
3184
    return allocateMemoryForSchemaCache;
1✔
3185
  }
3186

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

3191
  public long getAllocateMemoryForPartitionCache() {
3192
    return allocateMemoryForPartitionCache;
1✔
3193
  }
3194

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

3199
  public String getDataNodeSchemaCacheEvictionPolicy() {
3200
    return dataNodeSchemaCacheEvictionPolicy;
1✔
3201
  }
3202

3203
  public void setDataNodeSchemaCacheEvictionPolicy(String dataNodeSchemaCacheEvictionPolicy) {
3204
    this.dataNodeSchemaCacheEvictionPolicy = dataNodeSchemaCacheEvictionPolicy;
1✔
3205
  }
1✔
3206

3207
  public String getReadConsistencyLevel() {
3208
    return readConsistencyLevel;
1✔
3209
  }
3210

3211
  public void setReadConsistencyLevel(String readConsistencyLevel) {
3212
    this.readConsistencyLevel = readConsistencyLevel;
×
3213
  }
×
3214

3215
  public int getDriverTaskExecutionTimeSliceInMs() {
3216
    return driverTaskExecutionTimeSliceInMs;
1✔
3217
  }
3218

3219
  public void setDriverTaskExecutionTimeSliceInMs(int driverTaskExecutionTimeSliceInMs) {
3220
    this.driverTaskExecutionTimeSliceInMs = driverTaskExecutionTimeSliceInMs;
1✔
3221
  }
1✔
3222

3223
  public double getWriteProportionForMemtable() {
3224
    return writeProportionForMemtable;
1✔
3225
  }
3226

3227
  public void setWriteProportionForMemtable(double writeProportionForMemtable) {
3228
    this.writeProportionForMemtable = writeProportionForMemtable;
×
3229
  }
×
3230

3231
  public double getCompactionProportion() {
3232
    return compactionProportion;
1✔
3233
  }
3234

3235
  public double getLoadTsFileProportion() {
3236
    return loadTsFileProportion;
1✔
3237
  }
3238

3239
  public int getMaxLoadingDeviceNumber() {
3240
    return maxLoadingDeviceNumber;
×
3241
  }
3242

3243
  public static String getEnvironmentVariables() {
3244
    return "\n\t"
×
3245
        + IoTDBConstant.IOTDB_HOME
3246
        + "="
3247
        + System.getProperty(IoTDBConstant.IOTDB_HOME, "null")
×
3248
        + ";"
3249
        + "\n\t"
3250
        + IoTDBConstant.IOTDB_CONF
3251
        + "="
3252
        + System.getProperty(IoTDBConstant.IOTDB_CONF, "null")
×
3253
        + ";"
3254
        + "\n\t"
3255
        + IoTDBConstant.IOTDB_DATA_HOME
3256
        + "="
3257
        + System.getProperty(IoTDBConstant.IOTDB_DATA_HOME, "null")
×
3258
        + ";";
3259
  }
3260

3261
  public void setCompactionProportion(double compactionProportion) {
3262
    this.compactionProportion = compactionProportion;
×
3263
  }
×
3264

3265
  public long getThrottleThreshold() {
3266
    return throttleThreshold;
1✔
3267
  }
3268

3269
  public void setThrottleThreshold(long throttleThreshold) {
3270
    this.throttleThreshold = throttleThreshold;
1✔
3271
  }
1✔
3272

3273
  public double getChunkMetadataSizeProportion() {
3274
    return chunkMetadataSizeProportion;
1✔
3275
  }
3276

3277
  public void setChunkMetadataSizeProportion(double chunkMetadataSizeProportion) {
3278
    this.chunkMetadataSizeProportion = chunkMetadataSizeProportion;
1✔
3279
  }
1✔
3280

3281
  public long getCacheWindowTimeInMs() {
3282
    return cacheWindowTimeInMs;
1✔
3283
  }
3284

3285
  public void setCacheWindowTimeInMs(long cacheWindowTimeInMs) {
3286
    this.cacheWindowTimeInMs = cacheWindowTimeInMs;
1✔
3287
  }
1✔
3288

3289
  public long getDataRatisConsensusLogAppenderBufferSizeMax() {
3290
    return dataRatisConsensusLogAppenderBufferSizeMax;
1✔
3291
  }
3292

3293
  public void setDataRatisConsensusLogAppenderBufferSizeMax(
3294
      long dataRatisConsensusLogAppenderBufferSizeMax) {
3295
    this.dataRatisConsensusLogAppenderBufferSizeMax = dataRatisConsensusLogAppenderBufferSizeMax;
×
3296
  }
×
3297

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

3343
  public long getDataRatisConsensusSnapshotTriggerThreshold() {
3344
    return dataRatisConsensusSnapshotTriggerThreshold;
1✔
3345
  }
3346

3347
  public void setDataRatisConsensusSnapshotTriggerThreshold(
3348
      long dataRatisConsensusSnapshotTriggerThreshold) {
3349
    this.dataRatisConsensusSnapshotTriggerThreshold = dataRatisConsensusSnapshotTriggerThreshold;
×
3350
  }
×
3351

3352
  public boolean isDataRatisConsensusLogUnsafeFlushEnable() {
3353
    return dataRatisConsensusLogUnsafeFlushEnable;
1✔
3354
  }
3355

3356
  public void setDataRatisConsensusLogUnsafeFlushEnable(
3357
      boolean dataRatisConsensusLogUnsafeFlushEnable) {
3358
    this.dataRatisConsensusLogUnsafeFlushEnable = dataRatisConsensusLogUnsafeFlushEnable;
×
3359
  }
×
3360

3361
  public int getDataRatisConsensusLogForceSyncNum() {
3362
    return dataRatisConsensusLogForceSyncNum;
1✔
3363
  }
3364

3365
  public void setDataRatisConsensusLogForceSyncNum(int dataRatisConsensusLogForceSyncNum) {
3366
    this.dataRatisConsensusLogForceSyncNum = dataRatisConsensusLogForceSyncNum;
×
3367
  }
×
3368

3369
  public long getDataRatisConsensusLogSegmentSizeMax() {
3370
    return dataRatisConsensusLogSegmentSizeMax;
1✔
3371
  }
3372

3373
  public void setDataRatisConsensusLogSegmentSizeMax(long dataRatisConsensusLogSegmentSizeMax) {
3374
    this.dataRatisConsensusLogSegmentSizeMax = dataRatisConsensusLogSegmentSizeMax;
×
3375
  }
×
3376

3377
  public long getDataRatisConsensusGrpcFlowControlWindow() {
3378
    return dataRatisConsensusGrpcFlowControlWindow;
1✔
3379
  }
3380

3381
  public void setDataRatisConsensusGrpcFlowControlWindow(
3382
      long dataRatisConsensusGrpcFlowControlWindow) {
3383
    this.dataRatisConsensusGrpcFlowControlWindow = dataRatisConsensusGrpcFlowControlWindow;
×
3384
  }
×
3385

3386
  public int getDataRatisConsensusGrpcLeaderOutstandingAppendsMax() {
3387
    return dataRatisConsensusGrpcLeaderOutstandingAppendsMax;
1✔
3388
  }
3389

3390
  public void setDataRatisConsensusGrpcLeaderOutstandingAppendsMax(
3391
      int dataRatisConsensusGrpcLeaderOutstandingAppendsMax) {
3392
    this.dataRatisConsensusGrpcLeaderOutstandingAppendsMax =
×
3393
        dataRatisConsensusGrpcLeaderOutstandingAppendsMax;
3394
  }
×
3395

3396
  public long getDataRatisConsensusLeaderElectionTimeoutMinMs() {
3397
    return dataRatisConsensusLeaderElectionTimeoutMinMs;
1✔
3398
  }
3399

3400
  public void setDataRatisConsensusLeaderElectionTimeoutMinMs(
3401
      long dataRatisConsensusLeaderElectionTimeoutMinMs) {
3402
    this.dataRatisConsensusLeaderElectionTimeoutMinMs =
×
3403
        dataRatisConsensusLeaderElectionTimeoutMinMs;
3404
  }
×
3405

3406
  public long getDataRatisConsensusLeaderElectionTimeoutMaxMs() {
3407
    return dataRatisConsensusLeaderElectionTimeoutMaxMs;
1✔
3408
  }
3409

3410
  public void setDataRatisConsensusLeaderElectionTimeoutMaxMs(
3411
      long dataRatisConsensusLeaderElectionTimeoutMaxMs) {
3412
    this.dataRatisConsensusLeaderElectionTimeoutMaxMs =
×
3413
        dataRatisConsensusLeaderElectionTimeoutMaxMs;
3414
  }
×
3415

3416
  public long getSchemaRatisConsensusLogAppenderBufferSizeMax() {
3417
    return schemaRatisConsensusLogAppenderBufferSizeMax;
1✔
3418
  }
3419

3420
  public void setSchemaRatisConsensusLogAppenderBufferSizeMax(
3421
      long schemaRatisConsensusLogAppenderBufferSizeMax) {
3422
    this.schemaRatisConsensusLogAppenderBufferSizeMax =
×
3423
        schemaRatisConsensusLogAppenderBufferSizeMax;
3424
  }
×
3425

3426
  public long getSchemaRatisConsensusSnapshotTriggerThreshold() {
3427
    return schemaRatisConsensusSnapshotTriggerThreshold;
1✔
3428
  }
3429

3430
  public void setSchemaRatisConsensusSnapshotTriggerThreshold(
3431
      long schemaRatisConsensusSnapshotTriggerThreshold) {
3432
    this.schemaRatisConsensusSnapshotTriggerThreshold =
×
3433
        schemaRatisConsensusSnapshotTriggerThreshold;
3434
  }
×
3435

3436
  public boolean isSchemaRatisConsensusLogUnsafeFlushEnable() {
3437
    return schemaRatisConsensusLogUnsafeFlushEnable;
1✔
3438
  }
3439

3440
  public void setSchemaRatisConsensusLogUnsafeFlushEnable(
3441
      boolean schemaRatisConsensusLogUnsafeFlushEnable) {
3442
    this.schemaRatisConsensusLogUnsafeFlushEnable = schemaRatisConsensusLogUnsafeFlushEnable;
×
3443
  }
×
3444

3445
  public long getSchemaRatisConsensusLogSegmentSizeMax() {
3446
    return schemaRatisConsensusLogSegmentSizeMax;
1✔
3447
  }
3448

3449
  public void setSchemaRatisConsensusLogSegmentSizeMax(long schemaRatisConsensusLogSegmentSizeMax) {
3450
    this.schemaRatisConsensusLogSegmentSizeMax = schemaRatisConsensusLogSegmentSizeMax;
×
3451
  }
×
3452

3453
  public long getSchemaRatisConsensusGrpcFlowControlWindow() {
3454
    return schemaRatisConsensusGrpcFlowControlWindow;
1✔
3455
  }
3456

3457
  public void setSchemaRatisConsensusGrpcFlowControlWindow(
3458
      long schemaRatisConsensusGrpcFlowControlWindow) {
3459
    this.schemaRatisConsensusGrpcFlowControlWindow = schemaRatisConsensusGrpcFlowControlWindow;
×
3460
  }
×
3461

3462
  public long getSchemaRatisConsensusLeaderElectionTimeoutMinMs() {
3463
    return schemaRatisConsensusLeaderElectionTimeoutMinMs;
1✔
3464
  }
3465

3466
  public void setSchemaRatisConsensusLeaderElectionTimeoutMinMs(
3467
      long schemaRatisConsensusLeaderElectionTimeoutMinMs) {
3468
    this.schemaRatisConsensusLeaderElectionTimeoutMinMs =
×
3469
        schemaRatisConsensusLeaderElectionTimeoutMinMs;
3470
  }
×
3471

3472
  public long getSchemaRatisConsensusLeaderElectionTimeoutMaxMs() {
3473
    return schemaRatisConsensusLeaderElectionTimeoutMaxMs;
1✔
3474
  }
3475

3476
  public void setSchemaRatisConsensusLeaderElectionTimeoutMaxMs(
3477
      long schemaRatisConsensusLeaderElectionTimeoutMaxMs) {
3478
    this.schemaRatisConsensusLeaderElectionTimeoutMaxMs =
×
3479
        schemaRatisConsensusLeaderElectionTimeoutMaxMs;
3480
  }
×
3481

3482
  public long getCqMinEveryIntervalInMs() {
3483
    return cqMinEveryIntervalInMs;
×
3484
  }
3485

3486
  public void setCqMinEveryIntervalInMs(long cqMinEveryIntervalInMs) {
3487
    this.cqMinEveryIntervalInMs = cqMinEveryIntervalInMs;
×
3488
  }
×
3489

3490
  public double getUsableCompactionMemoryProportion() {
3491
    return 1.0d - chunkMetadataSizeProportion;
1✔
3492
  }
3493

3494
  public int getPatternMatchingThreshold() {
3495
    return patternMatchingThreshold;
1✔
3496
  }
3497

3498
  public void setPatternMatchingThreshold(int patternMatchingThreshold) {
3499
    this.patternMatchingThreshold = patternMatchingThreshold;
×
3500
  }
×
3501

3502
  public long getDataRatisConsensusRequestTimeoutMs() {
3503
    return dataRatisConsensusRequestTimeoutMs;
1✔
3504
  }
3505

3506
  public void setDataRatisConsensusRequestTimeoutMs(long dataRatisConsensusRequestTimeoutMs) {
3507
    this.dataRatisConsensusRequestTimeoutMs = dataRatisConsensusRequestTimeoutMs;
×
3508
  }
×
3509

3510
  public long getSchemaRatisConsensusRequestTimeoutMs() {
3511
    return schemaRatisConsensusRequestTimeoutMs;
1✔
3512
  }
3513

3514
  public void setSchemaRatisConsensusRequestTimeoutMs(long schemaRatisConsensusRequestTimeoutMs) {
3515
    this.schemaRatisConsensusRequestTimeoutMs = schemaRatisConsensusRequestTimeoutMs;
×
3516
  }
×
3517

3518
  public int getDataRatisConsensusMaxRetryAttempts() {
3519
    return dataRatisConsensusMaxRetryAttempts;
1✔
3520
  }
3521

3522
  public void setDataRatisConsensusMaxRetryAttempts(int dataRatisConsensusMaxRetryAttempts) {
3523
    this.dataRatisConsensusMaxRetryAttempts = dataRatisConsensusMaxRetryAttempts;
×
3524
  }
×
3525

3526
  public int getSchemaRatisConsensusMaxRetryAttempts() {
3527
    return schemaRatisConsensusMaxRetryAttempts;
×
3528
  }
3529

3530
  public void setSchemaRatisConsensusMaxRetryAttempts(int schemaRatisConsensusMaxRetryAttempts) {
3531
    this.schemaRatisConsensusMaxRetryAttempts = schemaRatisConsensusMaxRetryAttempts;
×
3532
  }
×
3533

3534
  public long getDataRatisConsensusInitialSleepTimeMs() {
3535
    return dataRatisConsensusInitialSleepTimeMs;
1✔
3536
  }
3537

3538
  public void setDataRatisConsensusInitialSleepTimeMs(long dataRatisConsensusInitialSleepTimeMs) {
3539
    this.dataRatisConsensusInitialSleepTimeMs = dataRatisConsensusInitialSleepTimeMs;
×
3540
  }
×
3541

3542
  public long getSchemaRatisConsensusInitialSleepTimeMs() {
3543
    return schemaRatisConsensusInitialSleepTimeMs;
×
3544
  }
3545

3546
  public void setSchemaRatisConsensusInitialSleepTimeMs(
3547
      long schemaRatisConsensusInitialSleepTimeMs) {
3548
    this.schemaRatisConsensusInitialSleepTimeMs = schemaRatisConsensusInitialSleepTimeMs;
×
3549
  }
×
3550

3551
  public long getDataRatisConsensusMaxSleepTimeMs() {
3552
    return dataRatisConsensusMaxSleepTimeMs;
1✔
3553
  }
3554

3555
  public void setDataRatisConsensusMaxSleepTimeMs(long dataRatisConsensusMaxSleepTimeMs) {
3556
    this.dataRatisConsensusMaxSleepTimeMs = dataRatisConsensusMaxSleepTimeMs;
×
3557
  }
×
3558

3559
  public long getSchemaRatisConsensusMaxSleepTimeMs() {
3560
    return schemaRatisConsensusMaxSleepTimeMs;
×
3561
  }
3562

3563
  public void setSchemaRatisConsensusMaxSleepTimeMs(long schemaRatisConsensusMaxSleepTimeMs) {
3564
    this.schemaRatisConsensusMaxSleepTimeMs = schemaRatisConsensusMaxSleepTimeMs;
×
3565
  }
×
3566

3567
  public Properties getCustomizedProperties() {
3568
    return customizedProperties;
×
3569
  }
3570

3571
  public void setCustomizedProperties(Properties customizedProperties) {
3572
    this.customizedProperties = customizedProperties;
×
3573
  }
×
3574

3575
  public long getDataRatisConsensusPreserveWhenPurge() {
3576
    return dataRatisConsensusPreserveWhenPurge;
1✔
3577
  }
3578

3579
  public void setDataRatisConsensusPreserveWhenPurge(long dataRatisConsensusPreserveWhenPurge) {
3580
    this.dataRatisConsensusPreserveWhenPurge = dataRatisConsensusPreserveWhenPurge;
×
3581
  }
×
3582

3583
  public long getSchemaRatisConsensusPreserveWhenPurge() {
3584
    return schemaRatisConsensusPreserveWhenPurge;
1✔
3585
  }
3586

3587
  public void setSchemaRatisConsensusPreserveWhenPurge(long schemaRatisConsensusPreserveWhenPurge) {
3588
    this.schemaRatisConsensusPreserveWhenPurge = schemaRatisConsensusPreserveWhenPurge;
×
3589
  }
×
3590

3591
  public long getRatisFirstElectionTimeoutMinMs() {
3592
    return ratisFirstElectionTimeoutMinMs;
1✔
3593
  }
3594

3595
  public void setRatisFirstElectionTimeoutMinMs(long ratisFirstElectionTimeoutMinMs) {
3596
    this.ratisFirstElectionTimeoutMinMs = ratisFirstElectionTimeoutMinMs;
×
3597
  }
×
3598

3599
  public long getRatisFirstElectionTimeoutMaxMs() {
3600
    return ratisFirstElectionTimeoutMaxMs;
1✔
3601
  }
3602

3603
  public void setRatisFirstElectionTimeoutMaxMs(long ratisFirstElectionTimeoutMaxMs) {
3604
    this.ratisFirstElectionTimeoutMaxMs = ratisFirstElectionTimeoutMaxMs;
×
3605
  }
×
3606

3607
  public long getDataRatisLogMax() {
3608
    return dataRatisLogMax;
1✔
3609
  }
3610

3611
  public void setDataRatisLogMax(long dataRatisLogMax) {
3612
    this.dataRatisLogMax = dataRatisLogMax;
×
3613
  }
×
3614

3615
  public long getSchemaRatisLogMax() {
3616
    return schemaRatisLogMax;
1✔
3617
  }
3618

3619
  public void setSchemaRatisLogMax(long schemaRatisLogMax) {
3620
    this.schemaRatisLogMax = schemaRatisLogMax;
×
3621
  }
×
3622

3623
  public CompactionValidationLevel getCompactionValidationLevel() {
3624
    return this.compactionValidationLevel;
1✔
3625
  }
3626

3627
  public void setCompactionValidationLevel(CompactionValidationLevel level) {
3628
    this.compactionValidationLevel = level;
1✔
3629
  }
1✔
3630

3631
  public int getCandidateCompactionTaskQueueSize() {
3632
    return candidateCompactionTaskQueueSize;
1✔
3633
  }
3634

3635
  public void setCandidateCompactionTaskQueueSize(int candidateCompactionTaskQueueSize) {
3636
    this.candidateCompactionTaskQueueSize = candidateCompactionTaskQueueSize;
1✔
3637
  }
1✔
3638

3639
  public boolean isEnableAuditLog() {
3640
    return enableAuditLog;
1✔
3641
  }
3642

3643
  public void setEnableAuditLog(boolean enableAuditLog) {
3644
    this.enableAuditLog = enableAuditLog;
×
3645
  }
×
3646

3647
  public List<AuditLogStorage> getAuditLogStorage() {
3648
    return auditLogStorage;
×
3649
  }
3650

3651
  public void setAuditLogStorage(List<AuditLogStorage> auditLogStorage) {
3652
    this.auditLogStorage = auditLogStorage;
×
3653
  }
×
3654

3655
  public List<AuditLogOperation> getAuditLogOperation() {
3656
    return auditLogOperation;
×
3657
  }
3658

3659
  public void setAuditLogOperation(List<AuditLogOperation> auditLogOperation) {
3660
    this.auditLogOperation = auditLogOperation;
×
3661
  }
×
3662

3663
  public boolean isEnableAuditLogForNativeInsertApi() {
3664
    return enableAuditLogForNativeInsertApi;
×
3665
  }
3666

3667
  public void setEnableAuditLogForNativeInsertApi(boolean enableAuditLogForNativeInsertApi) {
3668
    this.enableAuditLogForNativeInsertApi = enableAuditLogForNativeInsertApi;
×
3669
  }
×
3670

3671
  public void setModeMapSizeThreshold(int modeMapSizeThreshold) {
3672
    this.modeMapSizeThreshold = modeMapSizeThreshold;
1✔
3673
  }
1✔
3674

3675
  public int getModeMapSizeThreshold() {
3676
    return modeMapSizeThreshold;
1✔
3677
  }
3678

3679
  public void setPipeReceiverFileDir(String pipeReceiveFileDir) {
3680
    this.pipeReceiveFileDir = pipeReceiveFileDir;
1✔
3681
  }
1✔
3682

3683
  public String getPipeReceiverFileDir() {
3684
    return pipeReceiveFileDir;
1✔
3685
  }
3686

3687
  public boolean isQuotaEnable() {
3688
    return quotaEnable;
1✔
3689
  }
3690

3691
  public void setQuotaEnable(boolean quotaEnable) {
3692
    this.quotaEnable = quotaEnable;
1✔
3693
  }
1✔
3694

3695
  public String getRateLimiterType() {
3696
    return RateLimiterType;
1✔
3697
  }
3698

3699
  public void setRateLimiterType(String rateLimiterType) {
3700
    RateLimiterType = rateLimiterType;
1✔
3701
  }
1✔
3702

3703
  public void setSortBufferSize(long sortBufferSize) {
3704
    this.sortBufferSize = sortBufferSize;
1✔
3705
  }
1✔
3706

3707
  public long getSortBufferSize() {
3708
    return sortBufferSize;
1✔
3709
  }
3710

3711
  public void setSortTmpDir(String sortTmpDir) {
3712
    this.sortTmpDir = sortTmpDir;
1✔
3713
  }
1✔
3714

3715
  public String getSortTmpDir() {
3716
    return sortTmpDir;
1✔
3717
  }
3718

3719
  public String getClusterSchemaLimitLevel() {
3720
    return clusterSchemaLimitLevel;
1✔
3721
  }
3722

3723
  public void setClusterSchemaLimitLevel(String clusterSchemaLimitLevel) {
3724
    this.clusterSchemaLimitLevel = clusterSchemaLimitLevel;
1✔
3725
  }
1✔
3726

3727
  public long getClusterSchemaLimitThreshold() {
3728
    return clusterSchemaLimitThreshold;
1✔
3729
  }
3730

3731
  public void setClusterSchemaLimitThreshold(long clusterSchemaLimitThreshold) {
3732
    this.clusterSchemaLimitThreshold = clusterSchemaLimitThreshold;
1✔
3733
  }
1✔
3734

3735
  public String getObjectStorageBucket() {
3736
    throw new UnsupportedOperationException("object storage is not supported yet");
×
3737
  }
3738
}
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

© 2025 Coveralls, Inc