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

apache / iotdb / #10032

08 Sep 2023 06:40AM UTC coverage: 47.635% (-0.003%) from 47.638%
#10032

push

travis_ci

web-flow
[To rel/1.2] Remove some copyright info (#11096)

80288 of 168549 relevant lines covered (47.63%)

0.48 hits per line

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

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

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

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

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

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

71
public class IoTDBConfig {
72

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

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

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

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

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

95
  public static final Pattern NODE_PATTERN = Pattern.compile(NODE_MATCHER);
1✔
96
  public static final String SYSTEM_DATABASE = "root.__system";
97

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

167
  private int maxLoadingTimeseriesNumber = 2000;
1✔
168

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

342
  private int modeMapSizeThreshold = 10000;
1✔
343

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

467
  private double chunkMetadataSizeProportion = 0.1;
1✔
468

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

772
  private boolean enable13DataInsertAdapt = false;
1✔
773

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

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

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

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

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

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

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

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

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

807
  private int patternMatchingThreshold = 1000000;
1✔
808

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

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

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

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

824
  private boolean enableDiscardOutOfOrderData = false;
1✔
825

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

943
  private int devicePathCacheSize = 500_000;
1✔
944

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1020
  private int dataRatisConsensusGrpcLeaderOutstandingAppendsMax = 128;
1✔
1021

1022
  private int schemaRatisConsensusGrpcLeaderOutstandingAppendsMax = 128;
1✔
1023

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1095
  IoTDBConfig() {}
1✔
1096

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3394
  public void setDataRatisConsensusLogSegmentSizeMax(long dataRatisConsensusLogSegmentSizeMax) {
3395
    this.dataRatisConsensusLogSegmentSizeMax = dataRatisConsensusLogSegmentSizeMax;
×
3396
  }
×
3397

3398
  public long getDataRatisConsensusGrpcFlowControlWindow() {
3399
    return dataRatisConsensusGrpcFlowControlWindow;
1✔
3400
  }
3401

3402
  public void setDataRatisConsensusGrpcFlowControlWindow(
3403
      long dataRatisConsensusGrpcFlowControlWindow) {
3404
    this.dataRatisConsensusGrpcFlowControlWindow = dataRatisConsensusGrpcFlowControlWindow;
×
3405
  }
×
3406

3407
  public int getDataRatisConsensusGrpcLeaderOutstandingAppendsMax() {
3408
    return dataRatisConsensusGrpcLeaderOutstandingAppendsMax;
1✔
3409
  }
3410

3411
  public void setDataRatisConsensusGrpcLeaderOutstandingAppendsMax(
3412
      int dataRatisConsensusGrpcLeaderOutstandingAppendsMax) {
3413
    this.dataRatisConsensusGrpcLeaderOutstandingAppendsMax =
×
3414
        dataRatisConsensusGrpcLeaderOutstandingAppendsMax;
3415
  }
×
3416

3417
  public int getSchemaRatisConsensusGrpcLeaderOutstandingAppendsMax() {
3418
    return schemaRatisConsensusGrpcLeaderOutstandingAppendsMax;
1✔
3419
  }
3420

3421
  public void setSchemaRatisConsensusGrpcLeaderOutstandingAppendsMax(
3422
      int schemaRatisConsensusGrpcLeaderOutstandingAppendsMax) {
3423
    this.schemaRatisConsensusGrpcLeaderOutstandingAppendsMax =
×
3424
        schemaRatisConsensusGrpcLeaderOutstandingAppendsMax;
3425
  }
×
3426

3427
  public long getDataRatisConsensusLeaderElectionTimeoutMinMs() {
3428
    return dataRatisConsensusLeaderElectionTimeoutMinMs;
1✔
3429
  }
3430

3431
  public void setDataRatisConsensusLeaderElectionTimeoutMinMs(
3432
      long dataRatisConsensusLeaderElectionTimeoutMinMs) {
3433
    this.dataRatisConsensusLeaderElectionTimeoutMinMs =
×
3434
        dataRatisConsensusLeaderElectionTimeoutMinMs;
3435
  }
×
3436

3437
  public long getDataRatisConsensusLeaderElectionTimeoutMaxMs() {
3438
    return dataRatisConsensusLeaderElectionTimeoutMaxMs;
1✔
3439
  }
3440

3441
  public void setDataRatisConsensusLeaderElectionTimeoutMaxMs(
3442
      long dataRatisConsensusLeaderElectionTimeoutMaxMs) {
3443
    this.dataRatisConsensusLeaderElectionTimeoutMaxMs =
×
3444
        dataRatisConsensusLeaderElectionTimeoutMaxMs;
3445
  }
×
3446

3447
  public long getSchemaRatisConsensusLogAppenderBufferSizeMax() {
3448
    return schemaRatisConsensusLogAppenderBufferSizeMax;
1✔
3449
  }
3450

3451
  public void setSchemaRatisConsensusLogAppenderBufferSizeMax(
3452
      long schemaRatisConsensusLogAppenderBufferSizeMax) {
3453
    this.schemaRatisConsensusLogAppenderBufferSizeMax =
×
3454
        schemaRatisConsensusLogAppenderBufferSizeMax;
3455
  }
×
3456

3457
  public long getSchemaRatisConsensusSnapshotTriggerThreshold() {
3458
    return schemaRatisConsensusSnapshotTriggerThreshold;
1✔
3459
  }
3460

3461
  public void setSchemaRatisConsensusSnapshotTriggerThreshold(
3462
      long schemaRatisConsensusSnapshotTriggerThreshold) {
3463
    this.schemaRatisConsensusSnapshotTriggerThreshold =
×
3464
        schemaRatisConsensusSnapshotTriggerThreshold;
3465
  }
×
3466

3467
  public boolean isSchemaRatisConsensusLogUnsafeFlushEnable() {
3468
    return schemaRatisConsensusLogUnsafeFlushEnable;
1✔
3469
  }
3470

3471
  public void setSchemaRatisConsensusLogUnsafeFlushEnable(
3472
      boolean schemaRatisConsensusLogUnsafeFlushEnable) {
3473
    this.schemaRatisConsensusLogUnsafeFlushEnable = schemaRatisConsensusLogUnsafeFlushEnable;
×
3474
  }
×
3475

3476
  public long getSchemaRatisConsensusLogSegmentSizeMax() {
3477
    return schemaRatisConsensusLogSegmentSizeMax;
1✔
3478
  }
3479

3480
  public void setSchemaRatisConsensusLogSegmentSizeMax(long schemaRatisConsensusLogSegmentSizeMax) {
3481
    this.schemaRatisConsensusLogSegmentSizeMax = schemaRatisConsensusLogSegmentSizeMax;
×
3482
  }
×
3483

3484
  public long getSchemaRatisConsensusGrpcFlowControlWindow() {
3485
    return schemaRatisConsensusGrpcFlowControlWindow;
1✔
3486
  }
3487

3488
  public void setSchemaRatisConsensusGrpcFlowControlWindow(
3489
      long schemaRatisConsensusGrpcFlowControlWindow) {
3490
    this.schemaRatisConsensusGrpcFlowControlWindow = schemaRatisConsensusGrpcFlowControlWindow;
×
3491
  }
×
3492

3493
  public long getSchemaRatisConsensusLeaderElectionTimeoutMinMs() {
3494
    return schemaRatisConsensusLeaderElectionTimeoutMinMs;
1✔
3495
  }
3496

3497
  public void setSchemaRatisConsensusLeaderElectionTimeoutMinMs(
3498
      long schemaRatisConsensusLeaderElectionTimeoutMinMs) {
3499
    this.schemaRatisConsensusLeaderElectionTimeoutMinMs =
×
3500
        schemaRatisConsensusLeaderElectionTimeoutMinMs;
3501
  }
×
3502

3503
  public long getSchemaRatisConsensusLeaderElectionTimeoutMaxMs() {
3504
    return schemaRatisConsensusLeaderElectionTimeoutMaxMs;
1✔
3505
  }
3506

3507
  public void setSchemaRatisConsensusLeaderElectionTimeoutMaxMs(
3508
      long schemaRatisConsensusLeaderElectionTimeoutMaxMs) {
3509
    this.schemaRatisConsensusLeaderElectionTimeoutMaxMs =
×
3510
        schemaRatisConsensusLeaderElectionTimeoutMaxMs;
3511
  }
×
3512

3513
  public long getCqMinEveryIntervalInMs() {
3514
    return cqMinEveryIntervalInMs;
×
3515
  }
3516

3517
  public void setCqMinEveryIntervalInMs(long cqMinEveryIntervalInMs) {
3518
    this.cqMinEveryIntervalInMs = cqMinEveryIntervalInMs;
×
3519
  }
×
3520

3521
  public double getUsableCompactionMemoryProportion() {
3522
    return 1.0d - chunkMetadataSizeProportion;
1✔
3523
  }
3524

3525
  public int getPatternMatchingThreshold() {
3526
    return patternMatchingThreshold;
1✔
3527
  }
3528

3529
  public void setPatternMatchingThreshold(int patternMatchingThreshold) {
3530
    this.patternMatchingThreshold = patternMatchingThreshold;
×
3531
  }
×
3532

3533
  public long getDataRatisConsensusRequestTimeoutMs() {
3534
    return dataRatisConsensusRequestTimeoutMs;
1✔
3535
  }
3536

3537
  public void setDataRatisConsensusRequestTimeoutMs(long dataRatisConsensusRequestTimeoutMs) {
3538
    this.dataRatisConsensusRequestTimeoutMs = dataRatisConsensusRequestTimeoutMs;
×
3539
  }
×
3540

3541
  public long getSchemaRatisConsensusRequestTimeoutMs() {
3542
    return schemaRatisConsensusRequestTimeoutMs;
1✔
3543
  }
3544

3545
  public void setSchemaRatisConsensusRequestTimeoutMs(long schemaRatisConsensusRequestTimeoutMs) {
3546
    this.schemaRatisConsensusRequestTimeoutMs = schemaRatisConsensusRequestTimeoutMs;
×
3547
  }
×
3548

3549
  public int getDataRatisConsensusMaxRetryAttempts() {
3550
    return dataRatisConsensusMaxRetryAttempts;
1✔
3551
  }
3552

3553
  public void setDataRatisConsensusMaxRetryAttempts(int dataRatisConsensusMaxRetryAttempts) {
3554
    this.dataRatisConsensusMaxRetryAttempts = dataRatisConsensusMaxRetryAttempts;
×
3555
  }
×
3556

3557
  public int getSchemaRatisConsensusMaxRetryAttempts() {
3558
    return schemaRatisConsensusMaxRetryAttempts;
×
3559
  }
3560

3561
  public void setSchemaRatisConsensusMaxRetryAttempts(int schemaRatisConsensusMaxRetryAttempts) {
3562
    this.schemaRatisConsensusMaxRetryAttempts = schemaRatisConsensusMaxRetryAttempts;
×
3563
  }
×
3564

3565
  public long getDataRatisConsensusInitialSleepTimeMs() {
3566
    return dataRatisConsensusInitialSleepTimeMs;
1✔
3567
  }
3568

3569
  public void setDataRatisConsensusInitialSleepTimeMs(long dataRatisConsensusInitialSleepTimeMs) {
3570
    this.dataRatisConsensusInitialSleepTimeMs = dataRatisConsensusInitialSleepTimeMs;
×
3571
  }
×
3572

3573
  public long getSchemaRatisConsensusInitialSleepTimeMs() {
3574
    return schemaRatisConsensusInitialSleepTimeMs;
×
3575
  }
3576

3577
  public void setSchemaRatisConsensusInitialSleepTimeMs(
3578
      long schemaRatisConsensusInitialSleepTimeMs) {
3579
    this.schemaRatisConsensusInitialSleepTimeMs = schemaRatisConsensusInitialSleepTimeMs;
×
3580
  }
×
3581

3582
  public long getDataRatisConsensusMaxSleepTimeMs() {
3583
    return dataRatisConsensusMaxSleepTimeMs;
1✔
3584
  }
3585

3586
  public void setDataRatisConsensusMaxSleepTimeMs(long dataRatisConsensusMaxSleepTimeMs) {
3587
    this.dataRatisConsensusMaxSleepTimeMs = dataRatisConsensusMaxSleepTimeMs;
×
3588
  }
×
3589

3590
  public long getSchemaRatisConsensusMaxSleepTimeMs() {
3591
    return schemaRatisConsensusMaxSleepTimeMs;
×
3592
  }
3593

3594
  public void setSchemaRatisConsensusMaxSleepTimeMs(long schemaRatisConsensusMaxSleepTimeMs) {
3595
    this.schemaRatisConsensusMaxSleepTimeMs = schemaRatisConsensusMaxSleepTimeMs;
×
3596
  }
×
3597

3598
  public Properties getCustomizedProperties() {
3599
    return customizedProperties;
×
3600
  }
3601

3602
  public void setCustomizedProperties(Properties customizedProperties) {
3603
    this.customizedProperties = customizedProperties;
×
3604
  }
×
3605

3606
  public long getDataRatisConsensusPreserveWhenPurge() {
3607
    return dataRatisConsensusPreserveWhenPurge;
1✔
3608
  }
3609

3610
  public void setDataRatisConsensusPreserveWhenPurge(long dataRatisConsensusPreserveWhenPurge) {
3611
    this.dataRatisConsensusPreserveWhenPurge = dataRatisConsensusPreserveWhenPurge;
×
3612
  }
×
3613

3614
  public long getSchemaRatisConsensusPreserveWhenPurge() {
3615
    return schemaRatisConsensusPreserveWhenPurge;
1✔
3616
  }
3617

3618
  public void setSchemaRatisConsensusPreserveWhenPurge(long schemaRatisConsensusPreserveWhenPurge) {
3619
    this.schemaRatisConsensusPreserveWhenPurge = schemaRatisConsensusPreserveWhenPurge;
×
3620
  }
×
3621

3622
  public long getRatisFirstElectionTimeoutMinMs() {
3623
    return ratisFirstElectionTimeoutMinMs;
1✔
3624
  }
3625

3626
  public void setRatisFirstElectionTimeoutMinMs(long ratisFirstElectionTimeoutMinMs) {
3627
    this.ratisFirstElectionTimeoutMinMs = ratisFirstElectionTimeoutMinMs;
×
3628
  }
×
3629

3630
  public long getRatisFirstElectionTimeoutMaxMs() {
3631
    return ratisFirstElectionTimeoutMaxMs;
1✔
3632
  }
3633

3634
  public void setRatisFirstElectionTimeoutMaxMs(long ratisFirstElectionTimeoutMaxMs) {
3635
    this.ratisFirstElectionTimeoutMaxMs = ratisFirstElectionTimeoutMaxMs;
×
3636
  }
×
3637

3638
  public long getDataRatisLogMax() {
3639
    return dataRatisLogMax;
1✔
3640
  }
3641

3642
  public void setDataRatisLogMax(long dataRatisLogMax) {
3643
    this.dataRatisLogMax = dataRatisLogMax;
×
3644
  }
×
3645

3646
  public long getSchemaRatisLogMax() {
3647
    return schemaRatisLogMax;
1✔
3648
  }
3649

3650
  public void setSchemaRatisLogMax(long schemaRatisLogMax) {
3651
    this.schemaRatisLogMax = schemaRatisLogMax;
×
3652
  }
×
3653

3654
  public CompactionValidationLevel getCompactionValidationLevel() {
3655
    return this.compactionValidationLevel;
1✔
3656
  }
3657

3658
  public void setCompactionValidationLevel(CompactionValidationLevel level) {
3659
    this.compactionValidationLevel = level;
1✔
3660
  }
1✔
3661

3662
  public int getCandidateCompactionTaskQueueSize() {
3663
    return candidateCompactionTaskQueueSize;
1✔
3664
  }
3665

3666
  public void setCandidateCompactionTaskQueueSize(int candidateCompactionTaskQueueSize) {
3667
    this.candidateCompactionTaskQueueSize = candidateCompactionTaskQueueSize;
1✔
3668
  }
1✔
3669

3670
  public boolean isEnableAuditLog() {
3671
    return enableAuditLog;
1✔
3672
  }
3673

3674
  public void setEnableAuditLog(boolean enableAuditLog) {
3675
    this.enableAuditLog = enableAuditLog;
×
3676
  }
×
3677

3678
  public List<AuditLogStorage> getAuditLogStorage() {
3679
    return auditLogStorage;
×
3680
  }
3681

3682
  public void setAuditLogStorage(List<AuditLogStorage> auditLogStorage) {
3683
    this.auditLogStorage = auditLogStorage;
×
3684
  }
×
3685

3686
  public List<AuditLogOperation> getAuditLogOperation() {
3687
    return auditLogOperation;
×
3688
  }
3689

3690
  public void setAuditLogOperation(List<AuditLogOperation> auditLogOperation) {
3691
    this.auditLogOperation = auditLogOperation;
×
3692
  }
×
3693

3694
  public boolean isEnableAuditLogForNativeInsertApi() {
3695
    return enableAuditLogForNativeInsertApi;
×
3696
  }
3697

3698
  public void setEnableAuditLogForNativeInsertApi(boolean enableAuditLogForNativeInsertApi) {
3699
    this.enableAuditLogForNativeInsertApi = enableAuditLogForNativeInsertApi;
×
3700
  }
×
3701

3702
  public void setModeMapSizeThreshold(int modeMapSizeThreshold) {
3703
    this.modeMapSizeThreshold = modeMapSizeThreshold;
1✔
3704
  }
1✔
3705

3706
  public int getModeMapSizeThreshold() {
3707
    return modeMapSizeThreshold;
1✔
3708
  }
3709

3710
  public void setPipeReceiverFileDir(String pipeReceiverFileDir) {
3711
    this.pipeReceiverFileDir = pipeReceiverFileDir;
1✔
3712
  }
1✔
3713

3714
  public String getPipeReceiverFileDir() {
3715
    return pipeReceiverFileDir;
1✔
3716
  }
3717

3718
  public boolean isQuotaEnable() {
3719
    return quotaEnable;
1✔
3720
  }
3721

3722
  public void setQuotaEnable(boolean quotaEnable) {
3723
    this.quotaEnable = quotaEnable;
1✔
3724
  }
1✔
3725

3726
  public String getRateLimiterType() {
3727
    return RateLimiterType;
1✔
3728
  }
3729

3730
  public void setRateLimiterType(String rateLimiterType) {
3731
    RateLimiterType = rateLimiterType;
1✔
3732
  }
1✔
3733

3734
  public void setSortBufferSize(long sortBufferSize) {
3735
    this.sortBufferSize = sortBufferSize;
1✔
3736
  }
1✔
3737

3738
  public long getSortBufferSize() {
3739
    return sortBufferSize;
1✔
3740
  }
3741

3742
  public void setSortTmpDir(String sortTmpDir) {
3743
    this.sortTmpDir = sortTmpDir;
1✔
3744
  }
1✔
3745

3746
  public String getSortTmpDir() {
3747
    return sortTmpDir;
1✔
3748
  }
3749

3750
  public String getClusterSchemaLimitLevel() {
3751
    return clusterSchemaLimitLevel;
1✔
3752
  }
3753

3754
  public void setClusterSchemaLimitLevel(String clusterSchemaLimitLevel) {
3755
    this.clusterSchemaLimitLevel = clusterSchemaLimitLevel;
1✔
3756
  }
1✔
3757

3758
  public long getClusterSchemaLimitThreshold() {
3759
    return clusterSchemaLimitThreshold;
1✔
3760
  }
3761

3762
  public void setClusterSchemaLimitThreshold(long clusterSchemaLimitThreshold) {
3763
    this.clusterSchemaLimitThreshold = clusterSchemaLimitThreshold;
1✔
3764
  }
1✔
3765

3766
  public String getObjectStorageBucket() {
3767
    throw new UnsupportedOperationException("object storage is not supported yet");
×
3768
  }
3769
}
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