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

apache / iotdb / #9919

25 Aug 2023 07:08AM UTC coverage: 47.802% (+0.007%) from 47.795%
#9919

push

travis_ci

web-flow
Remove some useless configs (#10950)

80023 of 167404 relevant lines covered (47.8%)

0.48 hits per line

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

78.21
/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 = allocateMemoryForConsensus / 10;
1✔
563

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

771
  private boolean enable13DataInsertAdapt = false;
1✔
772

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

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

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

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

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

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

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

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

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

806
  private int patternMatchingThreshold = 1000000;
1✔
807

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

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

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

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

823
  private boolean enableDiscardOutOfOrderData = false;
1✔
824

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

942
  private int devicePathCacheSize = 500_000;
1✔
943

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1010
  private int dataRatisConsensusLogForceSyncNum = 128;
1✔
1011

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

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

1018
  private int dataRatisConsensusGrpcLeaderOutstandingAppendsMax = 128;
1✔
1019

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1091
  IoTDBConfig() {}
1✔
1092

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1324
  public String[] getDataDirs() {
1325
    return Arrays.stream(tierDataDirs).flatMap(Arrays::stream).toArray(String[]::new);
1✔
1326
  }
1327

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

1335
  public String[][] getTierDataDirs() {
1336
    return tierDataDirs;
1✔
1337
  }
1338

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

1348
  public String getRpcAddress() {
1349
    return rpcAddress;
1✔
1350
  }
1351

1352
  public void setRpcAddress(String rpcAddress) {
1353
    this.rpcAddress = rpcAddress;
1✔
1354
  }
1✔
1355

1356
  public int getRpcPort() {
1357
    return rpcPort;
1✔
1358
  }
1359

1360
  public void setRpcPort(int rpcPort) {
1361
    this.rpcPort = rpcPort;
1✔
1362
  }
1✔
1363

1364
  public boolean isEnableDiscardOutOfOrderData() {
1365
    return enableDiscardOutOfOrderData;
1✔
1366
  }
1367

1368
  public void setEnableDiscardOutOfOrderData(boolean enableDiscardOutOfOrderData) {
1369
    this.enableDiscardOutOfOrderData = enableDiscardOutOfOrderData;
1✔
1370
  }
1✔
1371

1372
  public String getSystemDir() {
1373
    return systemDir;
1✔
1374
  }
1375

1376
  void setSystemDir(String systemDir) {
1377
    this.systemDir = systemDir;
1✔
1378
  }
1✔
1379

1380
  public String getLoadTsFileDir() {
1381
    return loadTsFileDir;
×
1382
  }
1383

1384
  public void setLoadTsFileDir(String loadTsFileDir) {
1385
    this.loadTsFileDir = loadTsFileDir;
1✔
1386
  }
1✔
1387

1388
  public String getSchemaDir() {
1389
    return schemaDir;
1✔
1390
  }
1391

1392
  public void setSchemaDir(String schemaDir) {
1393
    this.schemaDir = schemaDir;
1✔
1394
  }
1✔
1395

1396
  public String getQueryDir() {
1397
    return queryDir;
1✔
1398
  }
1399

1400
  void setQueryDir(String queryDir) {
1401
    this.queryDir = queryDir;
1✔
1402
  }
1✔
1403

1404
  public String getRatisDataRegionSnapshotDir() {
1405
    return ratisDataRegionSnapshotDir;
×
1406
  }
1407

1408
  public void setRatisDataRegionSnapshotDir(String ratisDataRegionSnapshotDir) {
1409
    this.ratisDataRegionSnapshotDir = ratisDataRegionSnapshotDir;
1✔
1410
  }
1✔
1411

1412
  public String getConsensusDir() {
1413
    return consensusDir;
1✔
1414
  }
1415

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

1422
  public String getDataRegionConsensusDir() {
1423
    return dataRegionConsensusDir;
1✔
1424
  }
1425

1426
  public void setDataRegionConsensusDir(String dataRegionConsensusDir) {
1427
    this.dataRegionConsensusDir = dataRegionConsensusDir;
1✔
1428
  }
1✔
1429

1430
  public String getSchemaRegionConsensusDir() {
1431
    return schemaRegionConsensusDir;
1✔
1432
  }
1433

1434
  public void setSchemaRegionConsensusDir(String schemaRegionConsensusDir) {
1435
    this.schemaRegionConsensusDir = schemaRegionConsensusDir;
1✔
1436
  }
1✔
1437

1438
  public String getExtDir() {
1439
    return extDir;
1✔
1440
  }
1441

1442
  public void setExtDir(String extDir) {
1443
    this.extDir = extDir;
×
1444
  }
×
1445

1446
  public String getUdfDir() {
1447
    return udfDir;
1✔
1448
  }
1449

1450
  public void setUdfDir(String udfDir) {
1451
    this.udfDir = udfDir;
1✔
1452
    updateUdfTemporaryLibDir();
1✔
1453
  }
1✔
1454

1455
  public String getUdfTemporaryLibDir() {
1456
    return udfTemporaryLibDir;
×
1457
  }
1458

1459
  public void updateUdfTemporaryLibDir() {
1460
    this.udfTemporaryLibDir = udfDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
1✔
1461
  }
1✔
1462

1463
  public String getTriggerDir() {
1464
    return triggerDir;
1✔
1465
  }
1466

1467
  public void setTriggerDir(String triggerDir) {
1468
    this.triggerDir = triggerDir;
1✔
1469
    updateTriggerTemporaryLibDir();
1✔
1470
  }
1✔
1471

1472
  public String getTriggerTemporaryLibDir() {
1473
    return triggerTemporaryLibDir;
×
1474
  }
1475

1476
  public void updateTriggerTemporaryLibDir() {
1477
    this.triggerTemporaryLibDir = triggerDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
1✔
1478
  }
1✔
1479

1480
  public String getPipeLibDir() {
1481
    return pipeDir;
1✔
1482
  }
1483

1484
  public void setPipeLibDir(String pipeDir) {
1485
    this.pipeDir = pipeDir;
1✔
1486
    updatePipeTemporaryLibDir();
1✔
1487
  }
1✔
1488

1489
  public String getPipeTemporaryLibDir() {
1490
    return pipeTemporaryLibDir;
×
1491
  }
1492

1493
  public void updatePipeTemporaryLibDir() {
1494
    this.pipeTemporaryLibDir = pipeDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
1✔
1495
  }
1✔
1496

1497
  public String getMqttDir() {
1498
    return mqttDir;
1✔
1499
  }
1500

1501
  public void setMqttDir(String mqttDir) {
1502
    this.mqttDir = mqttDir;
1✔
1503
  }
1✔
1504

1505
  public String getMultiDirStrategyClassName() {
1506
    return multiDirStrategyClassName;
1✔
1507
  }
1508

1509
  void setMultiDirStrategyClassName(String multiDirStrategyClassName) {
1510
    this.multiDirStrategyClassName = multiDirStrategyClassName;
1✔
1511
  }
1✔
1512

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

1531
  public int getBatchSize() {
1532
    return batchSize;
1✔
1533
  }
1534

1535
  void setBatchSize(int batchSize) {
1536
    this.batchSize = batchSize;
1✔
1537
  }
1✔
1538

1539
  public int getMaxMemtableNumber() {
1540
    return maxMemtableNumber;
×
1541
  }
1542

1543
  public void setMaxMemtableNumber(int maxMemtableNumber) {
1544
    this.maxMemtableNumber = maxMemtableNumber;
×
1545
  }
×
1546

1547
  public int getFlushThreadCount() {
1548
    return flushThreadCount;
1✔
1549
  }
1550

1551
  void setFlushThreadCount(int flushThreadCount) {
1552
    this.flushThreadCount = flushThreadCount;
1✔
1553
  }
1✔
1554

1555
  public int getQueryThreadCount() {
1556
    return queryThreadCount;
1✔
1557
  }
1558

1559
  public void setQueryThreadCount(int queryThreadCount) {
1560
    this.queryThreadCount = queryThreadCount;
1✔
1561
    this.maxBytesPerFragmentInstance = allocateMemoryForDataExchange / queryThreadCount;
1✔
1562
  }
1✔
1563

1564
  public void setDegreeOfParallelism(int degreeOfParallelism) {
1565
    if (degreeOfParallelism > 0) {
1✔
1566
      this.degreeOfParallelism = degreeOfParallelism;
1✔
1567
    }
1568
  }
1✔
1569

1570
  public int getDegreeOfParallelism() {
1571
    return degreeOfParallelism;
1✔
1572
  }
1573

1574
  public int getMaxAllowedConcurrentQueries() {
1575
    return maxAllowedConcurrentQueries;
1✔
1576
  }
1577

1578
  public void setMaxAllowedConcurrentQueries(int maxAllowedConcurrentQueries) {
1579
    this.maxAllowedConcurrentQueries = maxAllowedConcurrentQueries;
1✔
1580
  }
1✔
1581

1582
  public long getMaxBytesPerFragmentInstance() {
1583
    return maxBytesPerFragmentInstance;
1✔
1584
  }
1585

1586
  @TestOnly
1587
  public void setMaxBytesPerFragmentInstance(long maxBytesPerFragmentInstance) {
1588
    this.maxBytesPerFragmentInstance = maxBytesPerFragmentInstance;
1✔
1589
  }
1✔
1590

1591
  public int getWindowEvaluationThreadCount() {
1592
    return windowEvaluationThreadCount;
1✔
1593
  }
1594

1595
  public void setWindowEvaluationThreadCount(int windowEvaluationThreadCount) {
1596
    this.windowEvaluationThreadCount = windowEvaluationThreadCount;
1✔
1597
  }
1✔
1598

1599
  public int getMaxPendingWindowEvaluationTasks() {
1600
    return maxPendingWindowEvaluationTasks;
1✔
1601
  }
1602

1603
  public void setMaxPendingWindowEvaluationTasks(int maxPendingWindowEvaluationTasks) {
1604
    this.maxPendingWindowEvaluationTasks = maxPendingWindowEvaluationTasks;
1✔
1605
  }
1✔
1606

1607
  public long getSeqTsFileSize() {
1608
    return seqTsFileSize;
1✔
1609
  }
1610

1611
  public void setSeqTsFileSize(long seqTsFileSize) {
1612
    this.seqTsFileSize = seqTsFileSize;
1✔
1613
  }
1✔
1614

1615
  public long getUnSeqTsFileSize() {
1616
    return unSeqTsFileSize;
1✔
1617
  }
1618

1619
  public void setUnSeqTsFileSize(long unSeqTsFileSize) {
1620
    this.unSeqTsFileSize = unSeqTsFileSize;
1✔
1621
  }
1✔
1622

1623
  public int getRpcSelectorThreadCount() {
1624
    return rpcSelectorThreadCount;
1✔
1625
  }
1626

1627
  public void setRpcSelectorThreadCount(int rpcSelectorThreadCount) {
1628
    this.rpcSelectorThreadCount = rpcSelectorThreadCount;
1✔
1629
  }
1✔
1630

1631
  public int getRpcMinConcurrentClientNum() {
1632
    return rpcMinConcurrentClientNum;
1✔
1633
  }
1634

1635
  public void setRpcMinConcurrentClientNum(int rpcMinConcurrentClientNum) {
1636
    this.rpcMinConcurrentClientNum = rpcMinConcurrentClientNum;
1✔
1637
  }
1✔
1638

1639
  public int getRpcMaxConcurrentClientNum() {
1640
    return rpcMaxConcurrentClientNum;
1✔
1641
  }
1642

1643
  void setRpcMaxConcurrentClientNum(int rpcMaxConcurrentClientNum) {
1644
    this.rpcMaxConcurrentClientNum = rpcMaxConcurrentClientNum;
1✔
1645
  }
1✔
1646

1647
  public int getmRemoteSchemaCacheSize() {
1648
    return mRemoteSchemaCacheSize;
1✔
1649
  }
1650

1651
  public void setmRemoteSchemaCacheSize(int mRemoteSchemaCacheSize) {
1652
    this.mRemoteSchemaCacheSize = mRemoteSchemaCacheSize;
1✔
1653
  }
1✔
1654

1655
  String getLanguageVersion() {
1656
    return languageVersion;
1✔
1657
  }
1658

1659
  void setLanguageVersion(String languageVersion) {
1660
    this.languageVersion = languageVersion;
1✔
1661
  }
1✔
1662

1663
  public String getIoTDBVersion() {
1664
    return IoTDBConstant.VERSION;
×
1665
  }
1666

1667
  public String getIoTDBMajorVersion() {
1668
    return IoTDBConstant.MAJOR_VERSION;
×
1669
  }
1670

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

1677
  public long getCacheFileReaderClearPeriod() {
1678
    return cacheFileReaderClearPeriod;
1✔
1679
  }
1680

1681
  public void setCacheFileReaderClearPeriod(long cacheFileReaderClearPeriod) {
1682
    this.cacheFileReaderClearPeriod = cacheFileReaderClearPeriod;
1✔
1683
  }
1✔
1684

1685
  public long getQueryTimeoutThreshold() {
1686
    return queryTimeoutThreshold;
1✔
1687
  }
1688

1689
  public void setQueryTimeoutThreshold(long queryTimeoutThreshold) {
1690
    this.queryTimeoutThreshold = queryTimeoutThreshold;
1✔
1691
  }
1✔
1692

1693
  public int getSessionTimeoutThreshold() {
1694
    return sessionTimeoutThreshold;
1✔
1695
  }
1696

1697
  public void setSessionTimeoutThreshold(int sessionTimeoutThreshold) {
1698
    this.sessionTimeoutThreshold = sessionTimeoutThreshold;
1✔
1699
  }
1✔
1700

1701
  public String getRpcImplClassName() {
1702
    return rpcImplClassName;
×
1703
  }
1704

1705
  public void setRpcImplClassName(String rpcImplClassName) {
1706
    this.rpcImplClassName = rpcImplClassName;
×
1707
  }
×
1708

1709
  public WALMode getWalMode() {
1710
    return walMode;
1✔
1711
  }
1712

1713
  public void setWalMode(WALMode walMode) {
1714
    this.walMode = walMode;
1✔
1715
  }
1✔
1716

1717
  public int getMaxWalNodesNum() {
1718
    return maxWalNodesNum;
1✔
1719
  }
1720

1721
  void setMaxWalNodesNum(int maxWalNodesNum) {
1722
    this.maxWalNodesNum = maxWalNodesNum;
×
1723
  }
×
1724

1725
  public long getWalAsyncModeFsyncDelayInMs() {
1726
    return walAsyncModeFsyncDelayInMs;
1✔
1727
  }
1728

1729
  void setWalAsyncModeFsyncDelayInMs(long walAsyncModeFsyncDelayInMs) {
1730
    this.walAsyncModeFsyncDelayInMs = walAsyncModeFsyncDelayInMs;
1✔
1731
  }
1✔
1732

1733
  public long getWalSyncModeFsyncDelayInMs() {
1734
    return walSyncModeFsyncDelayInMs;
1✔
1735
  }
1736

1737
  public void setWalSyncModeFsyncDelayInMs(long walSyncModeFsyncDelayInMs) {
1738
    this.walSyncModeFsyncDelayInMs = walSyncModeFsyncDelayInMs;
1✔
1739
  }
1✔
1740

1741
  public int getWalBufferSize() {
1742
    return walBufferSize;
1✔
1743
  }
1744

1745
  public void setWalBufferSize(int walBufferSize) {
1746
    this.walBufferSize = walBufferSize;
1✔
1747
  }
1✔
1748

1749
  public int getWalBufferQueueCapacity() {
1750
    return walBufferQueueCapacity;
1✔
1751
  }
1752

1753
  void setWalBufferQueueCapacity(int walBufferQueueCapacity) {
1754
    this.walBufferQueueCapacity = walBufferQueueCapacity;
1✔
1755
  }
1✔
1756

1757
  public long getWalFileSizeThresholdInByte() {
1758
    return walFileSizeThresholdInByte;
1✔
1759
  }
1760

1761
  void setWalFileSizeThresholdInByte(long walFileSizeThresholdInByte) {
1762
    this.walFileSizeThresholdInByte = walFileSizeThresholdInByte;
1✔
1763
  }
1✔
1764

1765
  public long getCheckpointFileSizeThresholdInByte() {
1766
    return checkpointFileSizeThresholdInByte;
1✔
1767
  }
1768

1769
  public void setCheckpointFileSizeThresholdInByte(long checkpointFileSizeThresholdInByte) {
1770
    this.checkpointFileSizeThresholdInByte = checkpointFileSizeThresholdInByte;
1✔
1771
  }
1✔
1772

1773
  public double getWalMinEffectiveInfoRatio() {
1774
    return walMinEffectiveInfoRatio;
1✔
1775
  }
1776

1777
  void setWalMinEffectiveInfoRatio(double walMinEffectiveInfoRatio) {
1778
    this.walMinEffectiveInfoRatio = walMinEffectiveInfoRatio;
1✔
1779
  }
1✔
1780

1781
  public long getWalMemTableSnapshotThreshold() {
1782
    return walMemTableSnapshotThreshold;
1✔
1783
  }
1784

1785
  void setWalMemTableSnapshotThreshold(long walMemTableSnapshotThreshold) {
1786
    this.walMemTableSnapshotThreshold = walMemTableSnapshotThreshold;
1✔
1787
  }
1✔
1788

1789
  public int getMaxWalMemTableSnapshotNum() {
1790
    return maxWalMemTableSnapshotNum;
1✔
1791
  }
1792

1793
  void setMaxWalMemTableSnapshotNum(int maxWalMemTableSnapshotNum) {
1794
    this.maxWalMemTableSnapshotNum = maxWalMemTableSnapshotNum;
1✔
1795
  }
1✔
1796

1797
  public long getDeleteWalFilesPeriodInMs() {
1798
    return deleteWalFilesPeriodInMs;
1✔
1799
  }
1800

1801
  void setDeleteWalFilesPeriodInMs(long deleteWalFilesPeriodInMs) {
1802
    this.deleteWalFilesPeriodInMs = deleteWalFilesPeriodInMs;
1✔
1803
  }
1✔
1804

1805
  public boolean isChunkBufferPoolEnable() {
1806
    return chunkBufferPoolEnable;
×
1807
  }
1808

1809
  void setChunkBufferPoolEnable(boolean chunkBufferPoolEnable) {
1810
    this.chunkBufferPoolEnable = chunkBufferPoolEnable;
×
1811
  }
×
1812

1813
  public long getMergeIntervalSec() {
1814
    return mergeIntervalSec;
1✔
1815
  }
1816

1817
  void setMergeIntervalSec(long mergeIntervalSec) {
1818
    this.mergeIntervalSec = mergeIntervalSec;
1✔
1819
  }
1✔
1820

1821
  public double getBufferedArraysMemoryProportion() {
1822
    return bufferedArraysMemoryProportion;
1✔
1823
  }
1824

1825
  public void setBufferedArraysMemoryProportion(double bufferedArraysMemoryProportion) {
1826
    this.bufferedArraysMemoryProportion = bufferedArraysMemoryProportion;
1✔
1827
  }
1✔
1828

1829
  public double getFlushProportion() {
1830
    return flushProportion;
1✔
1831
  }
1832

1833
  public void setFlushProportion(double flushProportion) {
1834
    this.flushProportion = flushProportion;
1✔
1835
  }
1✔
1836

1837
  public double getRejectProportion() {
1838
    return rejectProportion;
1✔
1839
  }
1840

1841
  public void setRejectProportion(double rejectProportion) {
1842
    this.rejectProportion = rejectProportion;
1✔
1843
  }
1✔
1844

1845
  public double getWriteMemoryVariationReportProportion() {
1846
    return writeMemoryVariationReportProportion;
1✔
1847
  }
1848

1849
  public void setWriteMemoryVariationReportProportion(double writeMemoryVariationReportProportion) {
1850
    this.writeMemoryVariationReportProportion = writeMemoryVariationReportProportion;
1✔
1851
  }
1✔
1852

1853
  public long getAllocateMemoryForStorageEngine() {
1854
    return allocateMemoryForStorageEngine;
1✔
1855
  }
1856

1857
  public void setAllocateMemoryForStorageEngine(long allocateMemoryForStorageEngine) {
1858
    this.allocateMemoryForStorageEngine = allocateMemoryForStorageEngine;
×
1859
  }
×
1860

1861
  public long getAllocateMemoryForSchema() {
1862
    return allocateMemoryForSchema;
1✔
1863
  }
1864

1865
  public void setAllocateMemoryForSchema(long allocateMemoryForSchema) {
1866
    this.allocateMemoryForSchema = allocateMemoryForSchema;
×
1867

1868
    this.allocateMemoryForSchemaRegion = allocateMemoryForSchema * 5 / 10;
×
1869
    this.allocateMemoryForSchemaCache = allocateMemoryForSchema * 4 / 10;
×
1870
    this.allocateMemoryForPartitionCache = allocateMemoryForSchema / 10;
×
1871
  }
×
1872

1873
  public long getAllocateMemoryForConsensus() {
1874
    return allocateMemoryForConsensus;
1✔
1875
  }
1876

1877
  public void setAllocateMemoryForConsensus(long allocateMemoryForConsensus) {
1878
    this.allocateMemoryForConsensus = allocateMemoryForConsensus;
×
1879
    this.allocateMemoryForWALPipeCache = allocateMemoryForConsensus / 10;
×
1880
  }
×
1881

1882
  public long getAllocateMemoryForRead() {
1883
    return allocateMemoryForRead;
1✔
1884
  }
1885

1886
  void setAllocateMemoryForRead(long allocateMemoryForRead) {
1887
    this.allocateMemoryForRead = allocateMemoryForRead;
×
1888

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

1899
  public long getAllocateMemoryForFree() {
1900
    return Runtime.getRuntime().maxMemory()
×
1901
        - allocateMemoryForStorageEngine
1902
        - allocateMemoryForRead
1903
        - allocateMemoryForSchema;
1904
  }
1905

1906
  public boolean isEnablePartialInsert() {
1907
    return enablePartialInsert;
1✔
1908
  }
1909

1910
  public void setEnablePartialInsert(boolean enablePartialInsert) {
1911
    this.enablePartialInsert = enablePartialInsert;
1✔
1912
  }
1✔
1913

1914
  public boolean isEnable13DataInsertAdapt() {
1915
    return enable13DataInsertAdapt;
1✔
1916
  }
1917

1918
  public void setEnable13DataInsertAdapt(boolean enable13DataInsertAdapt) {
1919
    this.enable13DataInsertAdapt = enable13DataInsertAdapt;
1✔
1920
  }
1✔
1921

1922
  public int getCompactionThreadCount() {
1923
    return compactionThreadCount;
1✔
1924
  }
1925

1926
  public void setCompactionThreadCount(int compactionThreadCount) {
1927
    this.compactionThreadCount = compactionThreadCount;
1✔
1928
  }
1✔
1929

1930
  public int getContinuousQueryThreadNum() {
1931
    return continuousQueryThreadNum;
1✔
1932
  }
1933

1934
  public void setContinuousQueryThreadNum(int continuousQueryThreadNum) {
1935
    this.continuousQueryThreadNum = continuousQueryThreadNum;
1✔
1936
  }
1✔
1937

1938
  public long getContinuousQueryMinimumEveryInterval() {
1939
    return continuousQueryMinimumEveryInterval;
×
1940
  }
1941

1942
  public void setContinuousQueryMinimumEveryInterval(long minimumEveryInterval) {
1943
    this.continuousQueryMinimumEveryInterval = minimumEveryInterval;
1✔
1944
  }
1✔
1945

1946
  public long getIntoOperationBufferSizeInByte() {
1947
    return intoOperationBufferSizeInByte;
1✔
1948
  }
1949

1950
  public void setIntoOperationBufferSizeInByte(long intoOperationBufferSizeInByte) {
1951
    this.intoOperationBufferSizeInByte = intoOperationBufferSizeInByte;
1✔
1952
  }
1✔
1953

1954
  public int getSelectIntoInsertTabletPlanRowLimit() {
1955
    return selectIntoInsertTabletPlanRowLimit;
1✔
1956
  }
1957

1958
  public void setSelectIntoInsertTabletPlanRowLimit(int selectIntoInsertTabletPlanRowLimit) {
1959
    this.selectIntoInsertTabletPlanRowLimit = selectIntoInsertTabletPlanRowLimit;
1✔
1960
  }
1✔
1961

1962
  public int getIntoOperationExecutionThreadCount() {
1963
    return intoOperationExecutionThreadCount;
1✔
1964
  }
1965

1966
  public void setIntoOperationExecutionThreadCount(int intoOperationExecutionThreadCount) {
1967
    this.intoOperationExecutionThreadCount = intoOperationExecutionThreadCount;
1✔
1968
  }
1✔
1969

1970
  public int getCompactionWriteThroughputMbPerSec() {
1971
    return compactionWriteThroughputMbPerSec;
1✔
1972
  }
1973

1974
  public void setCompactionWriteThroughputMbPerSec(int compactionWriteThroughputMbPerSec) {
1975
    this.compactionWriteThroughputMbPerSec = compactionWriteThroughputMbPerSec;
1✔
1976
  }
1✔
1977

1978
  public boolean isEnableMemControl() {
1979
    return enableMemControl;
1✔
1980
  }
1981

1982
  public void setEnableMemControl(boolean enableMemControl) {
1983
    this.enableMemControl = enableMemControl;
1✔
1984
  }
1✔
1985

1986
  public long getMemtableSizeThreshold() {
1987
    return memtableSizeThreshold;
1✔
1988
  }
1989

1990
  public void setMemtableSizeThreshold(long memtableSizeThreshold) {
1991
    this.memtableSizeThreshold = memtableSizeThreshold;
1✔
1992
  }
1✔
1993

1994
  public boolean isEnableTimedFlushSeqMemtable() {
1995
    return enableTimedFlushSeqMemtable;
1✔
1996
  }
1997

1998
  public void setEnableTimedFlushSeqMemtable(boolean enableTimedFlushSeqMemtable) {
1999
    this.enableTimedFlushSeqMemtable = enableTimedFlushSeqMemtable;
1✔
2000
  }
1✔
2001

2002
  public long getSeqMemtableFlushInterval() {
2003
    return seqMemtableFlushInterval;
1✔
2004
  }
2005

2006
  public void setSeqMemtableFlushInterval(long seqMemtableFlushInterval) {
2007
    this.seqMemtableFlushInterval = seqMemtableFlushInterval;
1✔
2008
  }
1✔
2009

2010
  public long getSeqMemtableFlushCheckInterval() {
2011
    return seqMemtableFlushCheckInterval;
1✔
2012
  }
2013

2014
  public void setSeqMemtableFlushCheckInterval(long seqMemtableFlushCheckInterval) {
2015
    this.seqMemtableFlushCheckInterval = seqMemtableFlushCheckInterval;
1✔
2016
  }
1✔
2017

2018
  public boolean isEnableTimedFlushUnseqMemtable() {
2019
    return enableTimedFlushUnseqMemtable;
1✔
2020
  }
2021

2022
  public void setEnableTimedFlushUnseqMemtable(boolean enableTimedFlushUnseqMemtable) {
2023
    this.enableTimedFlushUnseqMemtable = enableTimedFlushUnseqMemtable;
1✔
2024
  }
1✔
2025

2026
  public long getUnseqMemtableFlushInterval() {
2027
    return unseqMemtableFlushInterval;
1✔
2028
  }
2029

2030
  public void setUnseqMemtableFlushInterval(long unseqMemtableFlushInterval) {
2031
    this.unseqMemtableFlushInterval = unseqMemtableFlushInterval;
1✔
2032
  }
1✔
2033

2034
  public long getUnseqMemtableFlushCheckInterval() {
2035
    return unseqMemtableFlushCheckInterval;
1✔
2036
  }
2037

2038
  public void setUnseqMemtableFlushCheckInterval(long unseqMemtableFlushCheckInterval) {
2039
    this.unseqMemtableFlushCheckInterval = unseqMemtableFlushCheckInterval;
1✔
2040
  }
1✔
2041

2042
  public TVListSortAlgorithm getTvListSortAlgorithm() {
2043
    return tvListSortAlgorithm;
1✔
2044
  }
2045

2046
  public void setTvListSortAlgorithm(TVListSortAlgorithm tvListSortAlgorithm) {
2047
    this.tvListSortAlgorithm = tvListSortAlgorithm;
1✔
2048
  }
1✔
2049

2050
  public int getAvgSeriesPointNumberThreshold() {
2051
    return avgSeriesPointNumberThreshold;
1✔
2052
  }
2053

2054
  public void setAvgSeriesPointNumberThreshold(int avgSeriesPointNumberThreshold) {
2055
    this.avgSeriesPointNumberThreshold = avgSeriesPointNumberThreshold;
1✔
2056
  }
1✔
2057

2058
  public long getCrossCompactionFileSelectionTimeBudget() {
2059
    return crossCompactionFileSelectionTimeBudget;
1✔
2060
  }
2061

2062
  void setCrossCompactionFileSelectionTimeBudget(long crossCompactionFileSelectionTimeBudget) {
2063
    this.crossCompactionFileSelectionTimeBudget = crossCompactionFileSelectionTimeBudget;
1✔
2064
  }
1✔
2065

2066
  public boolean isRpcThriftCompressionEnable() {
2067
    return rpcThriftCompressionEnable;
1✔
2068
  }
2069

2070
  public void setRpcThriftCompressionEnable(boolean rpcThriftCompressionEnable) {
2071
    this.rpcThriftCompressionEnable = rpcThriftCompressionEnable;
1✔
2072
  }
1✔
2073

2074
  public boolean isMetaDataCacheEnable() {
2075
    return metaDataCacheEnable;
1✔
2076
  }
2077

2078
  public void setMetaDataCacheEnable(boolean metaDataCacheEnable) {
2079
    this.metaDataCacheEnable = metaDataCacheEnable;
1✔
2080
  }
1✔
2081

2082
  public long getAllocateMemoryForBloomFilterCache() {
2083
    return allocateMemoryForBloomFilterCache;
1✔
2084
  }
2085

2086
  public void setAllocateMemoryForBloomFilterCache(long allocateMemoryForBloomFilterCache) {
2087
    this.allocateMemoryForBloomFilterCache = allocateMemoryForBloomFilterCache;
×
2088
  }
×
2089

2090
  public long getAllocateMemoryForTimeSeriesMetaDataCache() {
2091
    return allocateMemoryForTimeSeriesMetaDataCache;
1✔
2092
  }
2093

2094
  public void setAllocateMemoryForTimeSeriesMetaDataCache(
2095
      long allocateMemoryForTimeSeriesMetaDataCache) {
2096
    this.allocateMemoryForTimeSeriesMetaDataCache = allocateMemoryForTimeSeriesMetaDataCache;
×
2097
  }
×
2098

2099
  public long getAllocateMemoryForChunkCache() {
2100
    return allocateMemoryForChunkCache;
1✔
2101
  }
2102

2103
  public void setAllocateMemoryForChunkCache(long allocateMemoryForChunkCache) {
2104
    this.allocateMemoryForChunkCache = allocateMemoryForChunkCache;
×
2105
  }
×
2106

2107
  public long getAllocateMemoryForCoordinator() {
2108
    return allocateMemoryForCoordinator;
×
2109
  }
2110

2111
  public void setAllocateMemoryForCoordinator(long allocateMemoryForCoordinator) {
2112
    this.allocateMemoryForCoordinator = allocateMemoryForCoordinator;
×
2113
  }
×
2114

2115
  public long getAllocateMemoryForOperators() {
2116
    return allocateMemoryForOperators;
1✔
2117
  }
2118

2119
  public void setAllocateMemoryForOperators(long allocateMemoryForOperators) {
2120
    this.allocateMemoryForOperators = allocateMemoryForOperators;
×
2121
  }
×
2122

2123
  public long getAllocateMemoryForDataExchange() {
2124
    return allocateMemoryForDataExchange;
1✔
2125
  }
2126

2127
  public void setAllocateMemoryForDataExchange(long allocateMemoryForDataExchange) {
2128
    this.allocateMemoryForDataExchange = allocateMemoryForDataExchange;
×
2129
    this.maxBytesPerFragmentInstance = allocateMemoryForDataExchange / queryThreadCount;
×
2130
  }
×
2131

2132
  public long getAllocateMemoryForTimeIndex() {
2133
    return allocateMemoryForTimeIndex;
1✔
2134
  }
2135

2136
  public void setAllocateMemoryForTimeIndex(long allocateMemoryForTimeIndex) {
2137
    this.allocateMemoryForTimeIndex = allocateMemoryForTimeIndex;
×
2138
  }
×
2139

2140
  public long getAllocateMemoryForTimePartitionInfo() {
2141
    return allocateMemoryForTimePartitionInfo;
1✔
2142
  }
2143

2144
  public void setAllocateMemoryForTimePartitionInfo(long allocateMemoryForTimePartitionInfo) {
2145
    this.allocateMemoryForTimePartitionInfo = allocateMemoryForTimePartitionInfo;
×
2146
  }
×
2147

2148
  public long getAllocateMemoryForWALPipeCache() {
2149
    return allocateMemoryForWALPipeCache;
1✔
2150
  }
2151

2152
  public void setAllocateMemoryForWALPipeCache(long allocateMemoryForWALPipeCache) {
2153
    this.allocateMemoryForWALPipeCache = allocateMemoryForWALPipeCache;
×
2154
  }
×
2155

2156
  public boolean isEnableQueryMemoryEstimation() {
2157
    return enableQueryMemoryEstimation;
1✔
2158
  }
2159

2160
  public void setEnableQueryMemoryEstimation(boolean enableQueryMemoryEstimation) {
2161
    this.enableQueryMemoryEstimation = enableQueryMemoryEstimation;
1✔
2162
  }
1✔
2163

2164
  public boolean isAutoCreateSchemaEnabled() {
2165
    return enableAutoCreateSchema;
1✔
2166
  }
2167

2168
  public void setAutoCreateSchemaEnabled(boolean enableAutoCreateSchema) {
2169
    this.enableAutoCreateSchema = enableAutoCreateSchema;
1✔
2170
  }
1✔
2171

2172
  public TSDataType getBooleanStringInferType() {
2173
    return booleanStringInferType;
1✔
2174
  }
2175

2176
  public void setBooleanStringInferType(TSDataType booleanStringInferType) {
2177
    this.booleanStringInferType = booleanStringInferType;
1✔
2178
  }
1✔
2179

2180
  public TSDataType getIntegerStringInferType() {
2181
    return integerStringInferType;
1✔
2182
  }
2183

2184
  public void setIntegerStringInferType(TSDataType integerStringInferType) {
2185
    this.integerStringInferType = integerStringInferType;
1✔
2186
  }
1✔
2187

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

2192
  public TSDataType getLongStringInferType() {
2193
    return longStringInferType;
1✔
2194
  }
2195

2196
  public TSDataType getFloatingStringInferType() {
2197
    return floatingStringInferType;
1✔
2198
  }
2199

2200
  public void setFloatingStringInferType(TSDataType floatingNumberStringInferType) {
2201
    this.floatingStringInferType = floatingNumberStringInferType;
1✔
2202
  }
1✔
2203

2204
  public TSDataType getNanStringInferType() {
2205
    return nanStringInferType;
1✔
2206
  }
2207

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

2219
  public int getDefaultStorageGroupLevel() {
2220
    return defaultStorageGroupLevel;
1✔
2221
  }
2222

2223
  void setDefaultStorageGroupLevel(int defaultStorageGroupLevel) {
2224
    this.defaultStorageGroupLevel = defaultStorageGroupLevel;
1✔
2225
  }
1✔
2226

2227
  public TSEncoding getDefaultBooleanEncoding() {
2228
    return defaultBooleanEncoding;
1✔
2229
  }
2230

2231
  public void setDefaultBooleanEncoding(TSEncoding defaultBooleanEncoding) {
2232
    this.defaultBooleanEncoding = defaultBooleanEncoding;
×
2233
  }
×
2234

2235
  void setDefaultBooleanEncoding(String defaultBooleanEncoding) {
2236
    this.defaultBooleanEncoding = TSEncoding.valueOf(defaultBooleanEncoding);
1✔
2237
  }
1✔
2238

2239
  public TSEncoding getDefaultInt32Encoding() {
2240
    return defaultInt32Encoding;
1✔
2241
  }
2242

2243
  public void setDefaultInt32Encoding(TSEncoding defaultInt32Encoding) {
2244
    this.defaultInt32Encoding = defaultInt32Encoding;
×
2245
  }
×
2246

2247
  void setDefaultInt32Encoding(String defaultInt32Encoding) {
2248
    this.defaultInt32Encoding = TSEncoding.valueOf(defaultInt32Encoding);
1✔
2249
  }
1✔
2250

2251
  public TSEncoding getDefaultInt64Encoding() {
2252
    return defaultInt64Encoding;
1✔
2253
  }
2254

2255
  public void setDefaultInt64Encoding(TSEncoding defaultInt64Encoding) {
2256
    this.defaultInt64Encoding = defaultInt64Encoding;
×
2257
  }
×
2258

2259
  void setDefaultInt64Encoding(String defaultInt64Encoding) {
2260
    this.defaultInt64Encoding = TSEncoding.valueOf(defaultInt64Encoding);
1✔
2261
  }
1✔
2262

2263
  public TSEncoding getDefaultFloatEncoding() {
2264
    return defaultFloatEncoding;
1✔
2265
  }
2266

2267
  public void setDefaultFloatEncoding(TSEncoding defaultFloatEncoding) {
2268
    this.defaultFloatEncoding = defaultFloatEncoding;
×
2269
  }
×
2270

2271
  void setDefaultFloatEncoding(String defaultFloatEncoding) {
2272
    this.defaultFloatEncoding = TSEncoding.valueOf(defaultFloatEncoding);
1✔
2273
  }
1✔
2274

2275
  public TSEncoding getDefaultDoubleEncoding() {
2276
    return defaultDoubleEncoding;
1✔
2277
  }
2278

2279
  public void setDefaultDoubleEncoding(TSEncoding defaultDoubleEncoding) {
2280
    this.defaultDoubleEncoding = defaultDoubleEncoding;
×
2281
  }
×
2282

2283
  void setDefaultDoubleEncoding(String defaultDoubleEncoding) {
2284
    this.defaultDoubleEncoding = TSEncoding.valueOf(defaultDoubleEncoding);
1✔
2285
  }
1✔
2286

2287
  public TSEncoding getDefaultTextEncoding() {
2288
    return defaultTextEncoding;
1✔
2289
  }
2290

2291
  public void setDefaultTextEncoding(TSEncoding defaultTextEncoding) {
2292
    this.defaultTextEncoding = defaultTextEncoding;
×
2293
  }
×
2294

2295
  void setDefaultTextEncoding(String defaultTextEncoding) {
2296
    this.defaultTextEncoding = TSEncoding.valueOf(defaultTextEncoding);
1✔
2297
  }
1✔
2298

2299
  FSType getTsFileStorageFs() {
2300
    return tsFileStorageFs;
1✔
2301
  }
2302

2303
  void setTsFileStorageFs(String tsFileStorageFs) {
2304
    this.tsFileStorageFs = FSType.valueOf(tsFileStorageFs);
1✔
2305
  }
1✔
2306

2307
  public boolean isEnableHDFS() {
2308
    return enableHDFS;
1✔
2309
  }
2310

2311
  public void setEnableHDFS(boolean enableHDFS) {
2312
    this.enableHDFS = enableHDFS;
1✔
2313
  }
1✔
2314

2315
  String getCoreSitePath() {
2316
    return coreSitePath;
1✔
2317
  }
2318

2319
  void setCoreSitePath(String coreSitePath) {
2320
    this.coreSitePath = coreSitePath;
1✔
2321
  }
1✔
2322

2323
  String getHdfsSitePath() {
2324
    return hdfsSitePath;
1✔
2325
  }
2326

2327
  void setHdfsSitePath(String hdfsSitePath) {
2328
    this.hdfsSitePath = hdfsSitePath;
1✔
2329
  }
1✔
2330

2331
  public String[] getHdfsIp() {
2332
    return hdfsIp.split(",");
×
2333
  }
2334

2335
  String getRawHDFSIp() {
2336
    return hdfsIp;
1✔
2337
  }
2338

2339
  void setHdfsIp(String[] hdfsIp) {
2340
    this.hdfsIp = String.join(",", hdfsIp);
1✔
2341
  }
1✔
2342

2343
  String getHdfsPort() {
2344
    return hdfsPort;
1✔
2345
  }
2346

2347
  void setHdfsPort(String hdfsPort) {
2348
    this.hdfsPort = hdfsPort;
1✔
2349
  }
1✔
2350

2351
  public int getSettleThreadNum() {
2352
    return settleThreadNum;
×
2353
  }
2354

2355
  String getDfsNameServices() {
2356
    return dfsNameServices;
1✔
2357
  }
2358

2359
  void setDfsNameServices(String dfsNameServices) {
2360
    this.dfsNameServices = dfsNameServices;
1✔
2361
  }
1✔
2362

2363
  public String[] getDfsHaNamenodes() {
2364
    return dfsHaNamenodes.split(",");
×
2365
  }
2366

2367
  String getRawDfsHaNamenodes() {
2368
    return dfsHaNamenodes;
1✔
2369
  }
2370

2371
  void setDfsHaNamenodes(String[] dfsHaNamenodes) {
2372
    this.dfsHaNamenodes = String.join(",", dfsHaNamenodes);
1✔
2373
  }
1✔
2374

2375
  boolean isDfsHaAutomaticFailoverEnabled() {
2376
    return dfsHaAutomaticFailoverEnabled;
1✔
2377
  }
2378

2379
  void setDfsHaAutomaticFailoverEnabled(boolean dfsHaAutomaticFailoverEnabled) {
2380
    this.dfsHaAutomaticFailoverEnabled = dfsHaAutomaticFailoverEnabled;
1✔
2381
  }
1✔
2382

2383
  String getDfsClientFailoverProxyProvider() {
2384
    return dfsClientFailoverProxyProvider;
1✔
2385
  }
2386

2387
  void setDfsClientFailoverProxyProvider(String dfsClientFailoverProxyProvider) {
2388
    this.dfsClientFailoverProxyProvider = dfsClientFailoverProxyProvider;
1✔
2389
  }
1✔
2390

2391
  boolean isUseKerberos() {
2392
    return useKerberos;
1✔
2393
  }
2394

2395
  void setUseKerberos(boolean useKerberos) {
2396
    this.useKerberos = useKerberos;
1✔
2397
  }
1✔
2398

2399
  String getKerberosKeytabFilePath() {
2400
    return kerberosKeytabFilePath;
1✔
2401
  }
2402

2403
  void setKerberosKeytabFilePath(String kerberosKeytabFilePath) {
2404
    this.kerberosKeytabFilePath = kerberosKeytabFilePath;
1✔
2405
  }
1✔
2406

2407
  String getKerberosPrincipal() {
2408
    return kerberosPrincipal;
1✔
2409
  }
2410

2411
  void setKerberosPrincipal(String kerberosPrincipal) {
2412
    this.kerberosPrincipal = kerberosPrincipal;
1✔
2413
  }
1✔
2414

2415
  public int getThriftServerAwaitTimeForStopService() {
2416
    return thriftServerAwaitTimeForStopService;
1✔
2417
  }
2418

2419
  public void setThriftServerAwaitTimeForStopService(int thriftServerAwaitTimeForStopService) {
2420
    this.thriftServerAwaitTimeForStopService = thriftServerAwaitTimeForStopService;
1✔
2421
  }
1✔
2422

2423
  public boolean isEnableMQTTService() {
2424
    return enableMQTTService;
×
2425
  }
2426

2427
  public void setEnableMQTTService(boolean enableMQTTService) {
2428
    this.enableMQTTService = enableMQTTService;
1✔
2429
  }
1✔
2430

2431
  public String getMqttHost() {
2432
    return mqttHost;
×
2433
  }
2434

2435
  public void setMqttHost(String mqttHost) {
2436
    this.mqttHost = mqttHost;
1✔
2437
  }
1✔
2438

2439
  public int getMqttPort() {
2440
    return mqttPort;
×
2441
  }
2442

2443
  public void setMqttPort(int mqttPort) {
2444
    this.mqttPort = mqttPort;
×
2445
  }
×
2446

2447
  public int getMqttHandlerPoolSize() {
2448
    return mqttHandlerPoolSize;
×
2449
  }
2450

2451
  public void setMqttHandlerPoolSize(int mqttHandlerPoolSize) {
2452
    this.mqttHandlerPoolSize = mqttHandlerPoolSize;
×
2453
  }
×
2454

2455
  public String getMqttPayloadFormatter() {
2456
    return mqttPayloadFormatter;
×
2457
  }
2458

2459
  public void setMqttPayloadFormatter(String mqttPayloadFormatter) {
2460
    this.mqttPayloadFormatter = mqttPayloadFormatter;
×
2461
  }
×
2462

2463
  public int getMqttMaxMessageSize() {
2464
    return mqttMaxMessageSize;
×
2465
  }
2466

2467
  public void setMqttMaxMessageSize(int mqttMaxMessageSize) {
2468
    this.mqttMaxMessageSize = mqttMaxMessageSize;
×
2469
  }
×
2470

2471
  public int getTagAttributeFlushInterval() {
2472
    return tagAttributeFlushInterval;
1✔
2473
  }
2474

2475
  public void setTagAttributeFlushInterval(int tagAttributeFlushInterval) {
2476
    this.tagAttributeFlushInterval = tagAttributeFlushInterval;
1✔
2477
  }
1✔
2478

2479
  public int getPrimitiveArraySize() {
2480
    return primitiveArraySize;
1✔
2481
  }
2482

2483
  public void setPrimitiveArraySize(int primitiveArraySize) {
2484
    this.primitiveArraySize = primitiveArraySize;
1✔
2485
  }
1✔
2486

2487
  public long getStartUpNanosecond() {
2488
    return startUpNanosecond;
1✔
2489
  }
2490

2491
  public int getThriftMaxFrameSize() {
2492
    return thriftMaxFrameSize;
1✔
2493
  }
2494

2495
  public void setThriftMaxFrameSize(int thriftMaxFrameSize) {
2496
    this.thriftMaxFrameSize = thriftMaxFrameSize;
1✔
2497
    RpcTransportFactory.setThriftMaxFrameSize(this.thriftMaxFrameSize);
1✔
2498
  }
1✔
2499

2500
  public int getThriftDefaultBufferSize() {
2501
    return thriftDefaultBufferSize;
1✔
2502
  }
2503

2504
  public void setThriftDefaultBufferSize(int thriftDefaultBufferSize) {
2505
    this.thriftDefaultBufferSize = thriftDefaultBufferSize;
1✔
2506
    RpcTransportFactory.setDefaultBufferCapacity(this.thriftDefaultBufferSize);
1✔
2507
  }
1✔
2508

2509
  public int getCheckPeriodWhenInsertBlocked() {
2510
    return checkPeriodWhenInsertBlocked;
1✔
2511
  }
2512

2513
  public void setCheckPeriodWhenInsertBlocked(int checkPeriodWhenInsertBlocked) {
2514
    this.checkPeriodWhenInsertBlocked = checkPeriodWhenInsertBlocked;
1✔
2515
  }
1✔
2516

2517
  public int getMaxWaitingTimeWhenInsertBlocked() {
2518
    return maxWaitingTimeWhenInsertBlockedInMs;
1✔
2519
  }
2520

2521
  public void setMaxWaitingTimeWhenInsertBlocked(int maxWaitingTimeWhenInsertBlocked) {
2522
    this.maxWaitingTimeWhenInsertBlockedInMs = maxWaitingTimeWhenInsertBlocked;
1✔
2523
  }
1✔
2524

2525
  public long getSlowQueryThreshold() {
2526
    return slowQueryThreshold;
1✔
2527
  }
2528

2529
  public void setSlowQueryThreshold(long slowQueryThreshold) {
2530
    this.slowQueryThreshold = slowQueryThreshold;
1✔
2531
  }
1✔
2532

2533
  public boolean isEnableIndex() {
2534
    return enableIndex;
1✔
2535
  }
2536

2537
  public void setEnableIndex(boolean enableIndex) {
2538
    this.enableIndex = enableIndex;
1✔
2539
  }
1✔
2540

2541
  void setConcurrentIndexBuildThread(int concurrentIndexBuildThread) {
2542
    this.concurrentIndexBuildThread = concurrentIndexBuildThread;
1✔
2543
  }
1✔
2544

2545
  public int getConcurrentIndexBuildThread() {
2546
    return concurrentIndexBuildThread;
1✔
2547
  }
2548

2549
  public String getIndexRootFolder() {
2550
    return indexRootFolder;
1✔
2551
  }
2552

2553
  public void setIndexRootFolder(String indexRootFolder) {
2554
    this.indexRootFolder = indexRootFolder;
1✔
2555
  }
1✔
2556

2557
  public int getDefaultIndexWindowRange() {
2558
    return defaultIndexWindowRange;
1✔
2559
  }
2560

2561
  public void setDefaultIndexWindowRange(int defaultIndexWindowRange) {
2562
    this.defaultIndexWindowRange = defaultIndexWindowRange;
1✔
2563
  }
1✔
2564

2565
  public int getDataRegionNum() {
2566
    return dataRegionNum;
1✔
2567
  }
2568

2569
  public void setDataRegionNum(int dataRegionNum) {
2570
    this.dataRegionNum = dataRegionNum;
1✔
2571
  }
1✔
2572

2573
  public long getRecoveryLogIntervalInMs() {
2574
    return recoveryLogIntervalInMs;
1✔
2575
  }
2576

2577
  public void setRecoveryLogIntervalInMs(long recoveryLogIntervalInMs) {
2578
    this.recoveryLogIntervalInMs = recoveryLogIntervalInMs;
1✔
2579
  }
1✔
2580

2581
  public boolean isRpcAdvancedCompressionEnable() {
2582
    return rpcAdvancedCompressionEnable;
1✔
2583
  }
2584

2585
  public void setRpcAdvancedCompressionEnable(boolean rpcAdvancedCompressionEnable) {
2586
    this.rpcAdvancedCompressionEnable = rpcAdvancedCompressionEnable;
1✔
2587
    RpcTransportFactory.setUseSnappy(this.rpcAdvancedCompressionEnable);
1✔
2588
  }
1✔
2589

2590
  public int getMlogBufferSize() {
2591
    return mlogBufferSize;
1✔
2592
  }
2593

2594
  public void setMlogBufferSize(int mlogBufferSize) {
2595
    this.mlogBufferSize = mlogBufferSize;
1✔
2596
  }
1✔
2597

2598
  public long getSyncMlogPeriodInMs() {
2599
    return syncMlogPeriodInMs;
1✔
2600
  }
2601

2602
  public void setSyncMlogPeriodInMs(long syncMlogPeriodInMs) {
2603
    this.syncMlogPeriodInMs = syncMlogPeriodInMs;
1✔
2604
  }
1✔
2605

2606
  public int getTlogBufferSize() {
2607
    return tlogBufferSize;
1✔
2608
  }
2609

2610
  public void setTlogBufferSize(int tlogBufferSize) {
2611
    this.tlogBufferSize = tlogBufferSize;
1✔
2612
  }
1✔
2613

2614
  public boolean isEnableRpcService() {
2615
    return enableRpcService;
×
2616
  }
2617

2618
  public void setEnableRpcService(boolean enableRpcService) {
2619
    this.enableRpcService = enableRpcService;
×
2620
  }
×
2621

2622
  public int getIoTaskQueueSizeForFlushing() {
2623
    return ioTaskQueueSizeForFlushing;
1✔
2624
  }
2625

2626
  public void setIoTaskQueueSizeForFlushing(int ioTaskQueueSizeForFlushing) {
2627
    this.ioTaskQueueSizeForFlushing = ioTaskQueueSizeForFlushing;
1✔
2628
  }
1✔
2629

2630
  public boolean isEnableSeqSpaceCompaction() {
2631
    return enableSeqSpaceCompaction;
1✔
2632
  }
2633

2634
  public void setEnableSeqSpaceCompaction(boolean enableSeqSpaceCompaction) {
2635
    this.enableSeqSpaceCompaction = enableSeqSpaceCompaction;
1✔
2636
  }
1✔
2637

2638
  public boolean isEnableUnseqSpaceCompaction() {
2639
    return enableUnseqSpaceCompaction;
1✔
2640
  }
2641

2642
  public void setEnableUnseqSpaceCompaction(boolean enableUnseqSpaceCompaction) {
2643
    this.enableUnseqSpaceCompaction = enableUnseqSpaceCompaction;
1✔
2644
  }
1✔
2645

2646
  public boolean isEnableCrossSpaceCompaction() {
2647
    return enableCrossSpaceCompaction;
1✔
2648
  }
2649

2650
  public void setEnableCrossSpaceCompaction(boolean enableCrossSpaceCompaction) {
2651
    this.enableCrossSpaceCompaction = enableCrossSpaceCompaction;
1✔
2652
  }
1✔
2653

2654
  public boolean isEnableMLNodeService() {
2655
    return enableMLNodeService;
1✔
2656
  }
2657

2658
  public void setEnableMLNodeService(boolean enableMLNodeService) {
2659
    this.enableMLNodeService = enableMLNodeService;
1✔
2660
  }
1✔
2661

2662
  public InnerSequenceCompactionSelector getInnerSequenceCompactionSelector() {
2663
    return innerSequenceCompactionSelector;
1✔
2664
  }
2665

2666
  public void setInnerSequenceCompactionSelector(
2667
      InnerSequenceCompactionSelector innerSequenceCompactionSelector) {
2668
    this.innerSequenceCompactionSelector = innerSequenceCompactionSelector;
1✔
2669
  }
1✔
2670

2671
  public InnerUnsequenceCompactionSelector getInnerUnsequenceCompactionSelector() {
2672
    return innerUnsequenceCompactionSelector;
1✔
2673
  }
2674

2675
  public void setInnerUnsequenceCompactionSelector(
2676
      InnerUnsequenceCompactionSelector innerUnsequenceCompactionSelector) {
2677
    this.innerUnsequenceCompactionSelector = innerUnsequenceCompactionSelector;
1✔
2678
  }
1✔
2679

2680
  public InnerSeqCompactionPerformer getInnerSeqCompactionPerformer() {
2681
    return innerSeqCompactionPerformer;
1✔
2682
  }
2683

2684
  public void setInnerSeqCompactionPerformer(
2685
      InnerSeqCompactionPerformer innerSeqCompactionPerformer) {
2686
    this.innerSeqCompactionPerformer = innerSeqCompactionPerformer;
1✔
2687
  }
1✔
2688

2689
  public InnerUnseqCompactionPerformer getInnerUnseqCompactionPerformer() {
2690
    return innerUnseqCompactionPerformer;
1✔
2691
  }
2692

2693
  public void setInnerUnseqCompactionPerformer(
2694
      InnerUnseqCompactionPerformer innerUnseqCompactionPerformer) {
2695
    this.innerUnseqCompactionPerformer = innerUnseqCompactionPerformer;
1✔
2696
  }
1✔
2697

2698
  public CrossCompactionSelector getCrossCompactionSelector() {
2699
    return crossCompactionSelector;
1✔
2700
  }
2701

2702
  public void setCrossCompactionSelector(CrossCompactionSelector crossCompactionSelector) {
2703
    this.crossCompactionSelector = crossCompactionSelector;
1✔
2704
  }
1✔
2705

2706
  public CrossCompactionPerformer getCrossCompactionPerformer() {
2707
    return crossCompactionPerformer;
1✔
2708
  }
2709

2710
  public void setCrossCompactionPerformer(CrossCompactionPerformer crossCompactionPerformer) {
2711
    this.crossCompactionPerformer = crossCompactionPerformer;
1✔
2712
  }
1✔
2713

2714
  public CompactionPriority getCompactionPriority() {
2715
    return compactionPriority;
1✔
2716
  }
2717

2718
  public void setCompactionPriority(CompactionPriority compactionPriority) {
2719
    this.compactionPriority = compactionPriority;
1✔
2720
  }
1✔
2721

2722
  public boolean isEnableCompactionMemControl() {
2723
    return enableCompactionMemControl;
1✔
2724
  }
2725

2726
  public void setEnableCompactionMemControl(boolean enableCompactionMemControl) {
2727
    this.enableCompactionMemControl = enableCompactionMemControl;
1✔
2728
  }
1✔
2729

2730
  public long getTargetCompactionFileSize() {
2731
    return targetCompactionFileSize;
1✔
2732
  }
2733

2734
  public void setTargetCompactionFileSize(long targetCompactionFileSize) {
2735
    this.targetCompactionFileSize = targetCompactionFileSize;
1✔
2736
  }
1✔
2737

2738
  public long getTargetChunkSize() {
2739
    return targetChunkSize;
1✔
2740
  }
2741

2742
  public void setTargetChunkSize(long targetChunkSize) {
2743
    this.targetChunkSize = targetChunkSize;
1✔
2744
  }
1✔
2745

2746
  public long getChunkSizeLowerBoundInCompaction() {
2747
    return chunkSizeLowerBoundInCompaction;
1✔
2748
  }
2749

2750
  public void setChunkSizeLowerBoundInCompaction(long chunkSizeLowerBoundInCompaction) {
2751
    this.chunkSizeLowerBoundInCompaction = chunkSizeLowerBoundInCompaction;
1✔
2752
  }
1✔
2753

2754
  public long getTargetChunkPointNum() {
2755
    return targetChunkPointNum;
1✔
2756
  }
2757

2758
  public void setTargetChunkPointNum(long targetChunkPointNum) {
2759
    this.targetChunkPointNum = targetChunkPointNum;
1✔
2760
  }
1✔
2761

2762
  public long getChunkPointNumLowerBoundInCompaction() {
2763
    return chunkPointNumLowerBoundInCompaction;
1✔
2764
  }
2765

2766
  public void setChunkPointNumLowerBoundInCompaction(long chunkPointNumLowerBoundInCompaction) {
2767
    this.chunkPointNumLowerBoundInCompaction = chunkPointNumLowerBoundInCompaction;
1✔
2768
  }
1✔
2769

2770
  public long getCompactionAcquireWriteLockTimeout() {
2771
    return compactionAcquireWriteLockTimeout;
×
2772
  }
2773

2774
  public void setCompactionAcquireWriteLockTimeout(long compactionAcquireWriteLockTimeout) {
2775
    this.compactionAcquireWriteLockTimeout = compactionAcquireWriteLockTimeout;
×
2776
  }
×
2777

2778
  public long getCompactionScheduleIntervalInMs() {
2779
    return compactionScheduleIntervalInMs;
1✔
2780
  }
2781

2782
  public void setCompactionScheduleIntervalInMs(long compactionScheduleIntervalInMs) {
2783
    this.compactionScheduleIntervalInMs = compactionScheduleIntervalInMs;
1✔
2784
  }
1✔
2785

2786
  public int getFileLimitPerInnerTask() {
2787
    return fileLimitPerInnerTask;
1✔
2788
  }
2789

2790
  public void setFileLimitPerInnerTask(int fileLimitPerInnerTask) {
2791
    this.fileLimitPerInnerTask = fileLimitPerInnerTask;
1✔
2792
  }
1✔
2793

2794
  public int getFileLimitPerCrossTask() {
2795
    return fileLimitPerCrossTask;
1✔
2796
  }
2797

2798
  public int getTotalFileLimitForCrossTask() {
2799
    return totalFileLimitForCrossTask;
1✔
2800
  }
2801

2802
  public void setFileLimitPerCrossTask(int fileLimitPerCrossTask) {
2803
    this.fileLimitPerCrossTask = fileLimitPerCrossTask;
1✔
2804
  }
1✔
2805

2806
  public long getMaxCrossCompactionCandidateFileSize() {
2807
    return maxCrossCompactionCandidateFileSize;
1✔
2808
  }
2809

2810
  public void setMaxCrossCompactionCandidateFileSize(long maxCrossCompactionCandidateFileSize) {
2811
    this.maxCrossCompactionCandidateFileSize = maxCrossCompactionCandidateFileSize;
1✔
2812
  }
1✔
2813

2814
  public int getMinCrossCompactionUnseqFileLevel() {
2815
    return minCrossCompactionUnseqFileLevel;
1✔
2816
  }
2817

2818
  public void setMinCrossCompactionUnseqFileLevel(int minCrossCompactionUnseqFileLevel) {
2819
    this.minCrossCompactionUnseqFileLevel = minCrossCompactionUnseqFileLevel;
1✔
2820
  }
1✔
2821

2822
  public long getCompactionSubmissionIntervalInMs() {
2823
    return compactionSubmissionIntervalInMs;
1✔
2824
  }
2825

2826
  public void setCompactionSubmissionIntervalInMs(long interval) {
2827
    compactionSubmissionIntervalInMs = interval;
1✔
2828
  }
1✔
2829

2830
  public int getSubCompactionTaskNum() {
2831
    return subCompactionTaskNum;
1✔
2832
  }
2833

2834
  public void setSubCompactionTaskNum(int subCompactionTaskNum) {
2835
    this.subCompactionTaskNum = subCompactionTaskNum;
1✔
2836
  }
1✔
2837

2838
  public int getCachedMNodeSizeInPBTreeMode() {
2839
    return cachedMNodeSizeInPBTreeMode;
1✔
2840
  }
2841

2842
  @TestOnly
2843
  public void setCachedMNodeSizeInPBTreeMode(int cachedMNodeSizeInPBTreeMode) {
2844
    this.cachedMNodeSizeInPBTreeMode = cachedMNodeSizeInPBTreeMode;
1✔
2845
  }
1✔
2846

2847
  public short getMinimumSegmentInPBTree() {
2848
    return minimumSegmentInPBTree;
1✔
2849
  }
2850

2851
  public void setMinimumSegmentInPBTree(short minimumSegmentInPBTree) {
2852
    this.minimumSegmentInPBTree = minimumSegmentInPBTree;
1✔
2853
  }
1✔
2854

2855
  public int getPageCacheSizeInPBTree() {
2856
    return pageCacheSizeInPBTree;
1✔
2857
  }
2858

2859
  public void setPageCacheSizeInPBTree(int pageCacheSizeInPBTree) {
2860
    this.pageCacheSizeInPBTree = pageCacheSizeInPBTree;
1✔
2861
  }
1✔
2862

2863
  public int getPBTreeLogSize() {
2864
    return pbTreeLogSize;
1✔
2865
  }
2866

2867
  public void setPBTreeLogSize(int pbTreeLogSize) {
2868
    this.pbTreeLogSize = pbTreeLogSize;
1✔
2869
  }
1✔
2870

2871
  public int getMaxMeasurementNumOfInternalRequest() {
2872
    return maxMeasurementNumOfInternalRequest;
1✔
2873
  }
2874

2875
  public void setMaxMeasurementNumOfInternalRequest(int maxMeasurementNumOfInternalRequest) {
2876
    this.maxMeasurementNumOfInternalRequest = maxMeasurementNumOfInternalRequest;
1✔
2877
  }
1✔
2878

2879
  public String getInternalAddress() {
2880
    return internalAddress;
1✔
2881
  }
2882

2883
  public void setInternalAddress(String internalAddress) {
2884
    this.internalAddress = internalAddress;
1✔
2885
  }
1✔
2886

2887
  public int getInternalPort() {
2888
    return internalPort;
1✔
2889
  }
2890

2891
  public void setInternalPort(int internalPort) {
2892
    this.internalPort = internalPort;
1✔
2893
  }
1✔
2894

2895
  public int getMLNodePort() {
2896
    return mlNodePort;
1✔
2897
  }
2898

2899
  public void setMLNodePort(int mlNodePort) {
2900
    this.mlNodePort = mlNodePort;
1✔
2901
  }
1✔
2902

2903
  public int getDataRegionConsensusPort() {
2904
    return dataRegionConsensusPort;
1✔
2905
  }
2906

2907
  public void setDataRegionConsensusPort(int dataRegionConsensusPort) {
2908
    this.dataRegionConsensusPort = dataRegionConsensusPort;
1✔
2909
  }
1✔
2910

2911
  public int getSchemaRegionConsensusPort() {
2912
    return schemaRegionConsensusPort;
1✔
2913
  }
2914

2915
  public void setSchemaRegionConsensusPort(int schemaRegionConsensusPort) {
2916
    this.schemaRegionConsensusPort = schemaRegionConsensusPort;
1✔
2917
  }
1✔
2918

2919
  public List<TEndPoint> getTargetConfigNodeList() {
2920
    return targetConfigNodeList;
×
2921
  }
2922

2923
  public void setTargetConfigNodeList(List<TEndPoint> targetConfigNodeList) {
2924
    this.targetConfigNodeList = targetConfigNodeList;
×
2925
  }
×
2926

2927
  public long getJoinClusterRetryIntervalMs() {
2928
    return joinClusterRetryIntervalMs;
1✔
2929
  }
2930

2931
  public void setJoinClusterRetryIntervalMs(long joinClusterRetryIntervalMs) {
2932
    this.joinClusterRetryIntervalMs = joinClusterRetryIntervalMs;
1✔
2933
  }
1✔
2934

2935
  public String getDataRegionConsensusProtocolClass() {
2936
    return dataRegionConsensusProtocolClass;
1✔
2937
  }
2938

2939
  public void setDataRegionConsensusProtocolClass(String dataRegionConsensusProtocolClass) {
2940
    this.dataRegionConsensusProtocolClass = dataRegionConsensusProtocolClass;
×
2941
  }
×
2942

2943
  public String getSchemaRegionConsensusProtocolClass() {
2944
    return schemaRegionConsensusProtocolClass;
1✔
2945
  }
2946

2947
  public void setSchemaRegionConsensusProtocolClass(String schemaRegionConsensusProtocolClass) {
2948
    this.schemaRegionConsensusProtocolClass = schemaRegionConsensusProtocolClass;
1✔
2949
  }
1✔
2950

2951
  public String getSeriesPartitionExecutorClass() {
2952
    return seriesPartitionExecutorClass;
1✔
2953
  }
2954

2955
  public void setSeriesPartitionExecutorClass(String seriesPartitionExecutorClass) {
2956
    this.seriesPartitionExecutorClass = seriesPartitionExecutorClass;
×
2957
  }
×
2958

2959
  public int getSeriesPartitionSlotNum() {
2960
    return seriesPartitionSlotNum;
1✔
2961
  }
2962

2963
  public void setSeriesPartitionSlotNum(int seriesPartitionSlotNum) {
2964
    this.seriesPartitionSlotNum = seriesPartitionSlotNum;
×
2965
  }
×
2966

2967
  public int getMppDataExchangePort() {
2968
    return mppDataExchangePort;
1✔
2969
  }
2970

2971
  public void setMppDataExchangePort(int mppDataExchangePort) {
2972
    this.mppDataExchangePort = mppDataExchangePort;
1✔
2973
  }
1✔
2974

2975
  public int getMppDataExchangeCorePoolSize() {
2976
    return mppDataExchangeCorePoolSize;
1✔
2977
  }
2978

2979
  public void setMppDataExchangeCorePoolSize(int mppDataExchangeCorePoolSize) {
2980
    this.mppDataExchangeCorePoolSize = mppDataExchangeCorePoolSize;
1✔
2981
  }
1✔
2982

2983
  public int getMppDataExchangeMaxPoolSize() {
2984
    return mppDataExchangeMaxPoolSize;
1✔
2985
  }
2986

2987
  public void setMppDataExchangeMaxPoolSize(int mppDataExchangeMaxPoolSize) {
2988
    this.mppDataExchangeMaxPoolSize = mppDataExchangeMaxPoolSize;
1✔
2989
  }
1✔
2990

2991
  public int getMppDataExchangeKeepAliveTimeInMs() {
2992
    return mppDataExchangeKeepAliveTimeInMs;
1✔
2993
  }
2994

2995
  public void setMppDataExchangeKeepAliveTimeInMs(int mppDataExchangeKeepAliveTimeInMs) {
2996
    this.mppDataExchangeKeepAliveTimeInMs = mppDataExchangeKeepAliveTimeInMs;
1✔
2997
  }
1✔
2998

2999
  public int getConnectionTimeoutInMS() {
3000
    return connectionTimeoutInMS;
1✔
3001
  }
3002

3003
  public void setConnectionTimeoutInMS(int connectionTimeoutInMS) {
3004
    this.connectionTimeoutInMS = connectionTimeoutInMS;
1✔
3005
  }
1✔
3006

3007
  public int getMaxClientNumForEachNode() {
3008
    return maxClientNumForEachNode;
1✔
3009
  }
3010

3011
  public void setMaxClientNumForEachNode(int maxClientNumForEachNode) {
3012
    this.maxClientNumForEachNode = maxClientNumForEachNode;
1✔
3013
  }
1✔
3014

3015
  public int getCoreClientNumForEachNode() {
3016
    return coreClientNumForEachNode;
1✔
3017
  }
3018

3019
  public void setCoreClientNumForEachNode(int coreClientNumForEachNode) {
3020
    this.coreClientNumForEachNode = coreClientNumForEachNode;
1✔
3021
  }
1✔
3022

3023
  public int getSelectorNumOfClientManager() {
3024
    return selectorNumOfClientManager;
1✔
3025
  }
3026

3027
  public void setSelectorNumOfClientManager(int selectorNumOfClientManager) {
3028
    this.selectorNumOfClientManager = selectorNumOfClientManager;
1✔
3029
  }
1✔
3030

3031
  public boolean isClusterMode() {
3032
    return isClusterMode;
1✔
3033
  }
3034

3035
  public void setClusterMode(boolean isClusterMode) {
3036
    this.isClusterMode = isClusterMode;
1✔
3037
    checkMultiDirStrategyClassName();
1✔
3038
  }
1✔
3039

3040
  public String getClusterName() {
3041
    return clusterName;
1✔
3042
  }
3043

3044
  public void setClusterName(String clusterName) {
3045
    this.clusterName = clusterName;
1✔
3046
  }
1✔
3047

3048
  public int getDataNodeId() {
3049
    return dataNodeId;
1✔
3050
  }
3051

3052
  public void setDataNodeId(int dataNodeId) {
3053
    this.dataNodeId = dataNodeId;
1✔
3054
  }
1✔
3055

3056
  public int getPartitionCacheSize() {
3057
    return partitionCacheSize;
1✔
3058
  }
3059

3060
  public String getExtPipeDir() {
3061
    return extPipeDir;
1✔
3062
  }
3063

3064
  public void setExtPipeDir(String extPipeDir) {
3065
    this.extPipeDir = extPipeDir;
1✔
3066
  }
1✔
3067

3068
  public void setPartitionCacheSize(int partitionCacheSize) {
3069
    this.partitionCacheSize = partitionCacheSize;
1✔
3070
  }
1✔
3071

3072
  public int getDevicePathCacheSize() {
3073
    return devicePathCacheSize;
1✔
3074
  }
3075

3076
  public void setDevicePathCacheSize(int devicePathCacheSize) {
3077
    this.devicePathCacheSize = devicePathCacheSize;
1✔
3078
  }
1✔
3079

3080
  public int getAuthorCacheSize() {
3081
    return authorCacheSize;
1✔
3082
  }
3083

3084
  public void setAuthorCacheSize(int authorCacheSize) {
3085
    this.authorCacheSize = authorCacheSize;
1✔
3086
  }
1✔
3087

3088
  public int getAuthorCacheExpireTime() {
3089
    return authorCacheExpireTime;
1✔
3090
  }
3091

3092
  public void setAuthorCacheExpireTime(int authorCacheExpireTime) {
3093
    this.authorCacheExpireTime = authorCacheExpireTime;
1✔
3094
  }
1✔
3095

3096
  public int getTriggerForwardMaxQueueNumber() {
3097
    return triggerForwardMaxQueueNumber;
1✔
3098
  }
3099

3100
  public void setTriggerForwardMaxQueueNumber(int triggerForwardMaxQueueNumber) {
3101
    this.triggerForwardMaxQueueNumber = triggerForwardMaxQueueNumber;
1✔
3102
  }
1✔
3103

3104
  public int getTriggerForwardMaxSizePerQueue() {
3105
    return triggerForwardMaxSizePerQueue;
1✔
3106
  }
3107

3108
  public void setTriggerForwardMaxSizePerQueue(int triggerForwardMaxSizePerQueue) {
3109
    this.triggerForwardMaxSizePerQueue = triggerForwardMaxSizePerQueue;
1✔
3110
  }
1✔
3111

3112
  public int getTriggerForwardBatchSize() {
3113
    return triggerForwardBatchSize;
1✔
3114
  }
3115

3116
  public void setTriggerForwardBatchSize(int triggerForwardBatchSize) {
3117
    this.triggerForwardBatchSize = triggerForwardBatchSize;
1✔
3118
  }
1✔
3119

3120
  public int getTriggerForwardHTTPPoolSize() {
3121
    return triggerForwardHTTPPoolSize;
1✔
3122
  }
3123

3124
  public void setTriggerForwardHTTPPoolSize(int triggerForwardHTTPPoolSize) {
3125
    this.triggerForwardHTTPPoolSize = triggerForwardHTTPPoolSize;
1✔
3126
  }
1✔
3127

3128
  public int getTriggerForwardHTTPPOOLMaxPerRoute() {
3129
    return triggerForwardHTTPPOOLMaxPerRoute;
1✔
3130
  }
3131

3132
  public void setTriggerForwardHTTPPOOLMaxPerRoute(int triggerForwardHTTPPOOLMaxPerRoute) {
3133
    this.triggerForwardHTTPPOOLMaxPerRoute = triggerForwardHTTPPOOLMaxPerRoute;
1✔
3134
  }
1✔
3135

3136
  public int getTriggerForwardMQTTPoolSize() {
3137
    return triggerForwardMQTTPoolSize;
1✔
3138
  }
3139

3140
  public void setTriggerForwardMQTTPoolSize(int triggerForwardMQTTPoolSize) {
3141
    this.triggerForwardMQTTPoolSize = triggerForwardMQTTPoolSize;
1✔
3142
  }
1✔
3143

3144
  public int getRetryNumToFindStatefulTrigger() {
3145
    return retryNumToFindStatefulTrigger;
1✔
3146
  }
3147

3148
  public void setRetryNumToFindStatefulTrigger(int retryNumToFindStatefulTrigger) {
3149
    this.retryNumToFindStatefulTrigger = retryNumToFindStatefulTrigger;
1✔
3150
  }
1✔
3151

3152
  public int getCoordinatorReadExecutorSize() {
3153
    return coordinatorReadExecutorSize;
1✔
3154
  }
3155

3156
  public void setCoordinatorReadExecutorSize(int coordinatorReadExecutorSize) {
3157
    this.coordinatorReadExecutorSize = coordinatorReadExecutorSize;
1✔
3158
  }
1✔
3159

3160
  public int getCoordinatorWriteExecutorSize() {
3161
    return coordinatorWriteExecutorSize;
1✔
3162
  }
3163

3164
  public void setCoordinatorWriteExecutorSize(int coordinatorWriteExecutorSize) {
3165
    this.coordinatorWriteExecutorSize = coordinatorWriteExecutorSize;
1✔
3166
  }
1✔
3167

3168
  public TEndPoint getAddressAndPort() {
3169
    return new TEndPoint(rpcAddress, rpcPort);
×
3170
  }
3171

3172
  public int[] getSchemaMemoryProportion() {
3173
    return schemaMemoryProportion;
1✔
3174
  }
3175

3176
  public void setSchemaMemoryProportion(int[] schemaMemoryProportion) {
3177
    this.schemaMemoryProportion = schemaMemoryProportion;
×
3178
  }
×
3179

3180
  public long getAllocateMemoryForSchemaRegion() {
3181
    return allocateMemoryForSchemaRegion;
1✔
3182
  }
3183

3184
  public void setAllocateMemoryForSchemaRegion(long allocateMemoryForSchemaRegion) {
3185
    this.allocateMemoryForSchemaRegion = allocateMemoryForSchemaRegion;
1✔
3186
  }
1✔
3187

3188
  public long getAllocateMemoryForSchemaCache() {
3189
    return allocateMemoryForSchemaCache;
1✔
3190
  }
3191

3192
  public void setAllocateMemoryForSchemaCache(long allocateMemoryForSchemaCache) {
3193
    this.allocateMemoryForSchemaCache = allocateMemoryForSchemaCache;
1✔
3194
  }
1✔
3195

3196
  public long getAllocateMemoryForPartitionCache() {
3197
    return allocateMemoryForPartitionCache;
1✔
3198
  }
3199

3200
  public void setAllocateMemoryForPartitionCache(long allocateMemoryForPartitionCache) {
3201
    this.allocateMemoryForPartitionCache = allocateMemoryForPartitionCache;
1✔
3202
  }
1✔
3203

3204
  public String getDataNodeSchemaCacheEvictionPolicy() {
3205
    return dataNodeSchemaCacheEvictionPolicy;
1✔
3206
  }
3207

3208
  public void setDataNodeSchemaCacheEvictionPolicy(String dataNodeSchemaCacheEvictionPolicy) {
3209
    this.dataNodeSchemaCacheEvictionPolicy = dataNodeSchemaCacheEvictionPolicy;
1✔
3210
  }
1✔
3211

3212
  public String getReadConsistencyLevel() {
3213
    return readConsistencyLevel;
1✔
3214
  }
3215

3216
  public void setReadConsistencyLevel(String readConsistencyLevel) {
3217
    this.readConsistencyLevel = readConsistencyLevel;
×
3218
  }
×
3219

3220
  public int getDriverTaskExecutionTimeSliceInMs() {
3221
    return driverTaskExecutionTimeSliceInMs;
1✔
3222
  }
3223

3224
  public void setDriverTaskExecutionTimeSliceInMs(int driverTaskExecutionTimeSliceInMs) {
3225
    this.driverTaskExecutionTimeSliceInMs = driverTaskExecutionTimeSliceInMs;
1✔
3226
  }
1✔
3227

3228
  public double getWriteProportionForMemtable() {
3229
    return writeProportionForMemtable;
1✔
3230
  }
3231

3232
  public void setWriteProportionForMemtable(double writeProportionForMemtable) {
3233
    this.writeProportionForMemtable = writeProportionForMemtable;
×
3234
  }
×
3235

3236
  public double getCompactionProportion() {
3237
    return compactionProportion;
1✔
3238
  }
3239

3240
  public double getLoadTsFileProportion() {
3241
    return loadTsFileProportion;
1✔
3242
  }
3243

3244
  public int getMaxLoadingTimeseriesNumber() {
3245
    return maxLoadingTimeseriesNumber;
1✔
3246
  }
3247

3248
  public void setMaxLoadingTimeseriesNumber(int maxLoadingTimeseriesNumber) {
3249
    this.maxLoadingTimeseriesNumber = maxLoadingTimeseriesNumber;
1✔
3250
  }
1✔
3251

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

3270
  public void setCompactionProportion(double compactionProportion) {
3271
    this.compactionProportion = compactionProportion;
×
3272
  }
×
3273

3274
  public long getThrottleThreshold() {
3275
    return throttleThreshold;
1✔
3276
  }
3277

3278
  public void setThrottleThreshold(long throttleThreshold) {
3279
    this.throttleThreshold = throttleThreshold;
1✔
3280
  }
1✔
3281

3282
  public double getChunkMetadataSizeProportion() {
3283
    return chunkMetadataSizeProportion;
1✔
3284
  }
3285

3286
  public void setChunkMetadataSizeProportion(double chunkMetadataSizeProportion) {
3287
    this.chunkMetadataSizeProportion = chunkMetadataSizeProportion;
1✔
3288
  }
1✔
3289

3290
  public long getCacheWindowTimeInMs() {
3291
    return cacheWindowTimeInMs;
1✔
3292
  }
3293

3294
  public void setCacheWindowTimeInMs(long cacheWindowTimeInMs) {
3295
    this.cacheWindowTimeInMs = cacheWindowTimeInMs;
1✔
3296
  }
1✔
3297

3298
  public long getDataRatisConsensusLogAppenderBufferSizeMax() {
3299
    return dataRatisConsensusLogAppenderBufferSizeMax;
1✔
3300
  }
3301

3302
  public void setDataRatisConsensusLogAppenderBufferSizeMax(
3303
      long dataRatisConsensusLogAppenderBufferSizeMax) {
3304
    this.dataRatisConsensusLogAppenderBufferSizeMax = dataRatisConsensusLogAppenderBufferSizeMax;
×
3305
  }
×
3306

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

3352
  public long getDataRatisConsensusSnapshotTriggerThreshold() {
3353
    return dataRatisConsensusSnapshotTriggerThreshold;
1✔
3354
  }
3355

3356
  public void setDataRatisConsensusSnapshotTriggerThreshold(
3357
      long dataRatisConsensusSnapshotTriggerThreshold) {
3358
    this.dataRatisConsensusSnapshotTriggerThreshold = dataRatisConsensusSnapshotTriggerThreshold;
×
3359
  }
×
3360

3361
  public boolean isDataRatisConsensusLogUnsafeFlushEnable() {
3362
    return dataRatisConsensusLogUnsafeFlushEnable;
1✔
3363
  }
3364

3365
  public void setDataRatisConsensusLogUnsafeFlushEnable(
3366
      boolean dataRatisConsensusLogUnsafeFlushEnable) {
3367
    this.dataRatisConsensusLogUnsafeFlushEnable = dataRatisConsensusLogUnsafeFlushEnable;
×
3368
  }
×
3369

3370
  public int getDataRatisConsensusLogForceSyncNum() {
3371
    return dataRatisConsensusLogForceSyncNum;
1✔
3372
  }
3373

3374
  public void setDataRatisConsensusLogForceSyncNum(int dataRatisConsensusLogForceSyncNum) {
3375
    this.dataRatisConsensusLogForceSyncNum = dataRatisConsensusLogForceSyncNum;
×
3376
  }
×
3377

3378
  public long getDataRatisConsensusLogSegmentSizeMax() {
3379
    return dataRatisConsensusLogSegmentSizeMax;
1✔
3380
  }
3381

3382
  public void setDataRatisConsensusLogSegmentSizeMax(long dataRatisConsensusLogSegmentSizeMax) {
3383
    this.dataRatisConsensusLogSegmentSizeMax = dataRatisConsensusLogSegmentSizeMax;
×
3384
  }
×
3385

3386
  public long getDataRatisConsensusGrpcFlowControlWindow() {
3387
    return dataRatisConsensusGrpcFlowControlWindow;
1✔
3388
  }
3389

3390
  public void setDataRatisConsensusGrpcFlowControlWindow(
3391
      long dataRatisConsensusGrpcFlowControlWindow) {
3392
    this.dataRatisConsensusGrpcFlowControlWindow = dataRatisConsensusGrpcFlowControlWindow;
×
3393
  }
×
3394

3395
  public int getDataRatisConsensusGrpcLeaderOutstandingAppendsMax() {
3396
    return dataRatisConsensusGrpcLeaderOutstandingAppendsMax;
1✔
3397
  }
3398

3399
  public void setDataRatisConsensusGrpcLeaderOutstandingAppendsMax(
3400
      int dataRatisConsensusGrpcLeaderOutstandingAppendsMax) {
3401
    this.dataRatisConsensusGrpcLeaderOutstandingAppendsMax =
×
3402
        dataRatisConsensusGrpcLeaderOutstandingAppendsMax;
3403
  }
×
3404

3405
  public long getDataRatisConsensusLeaderElectionTimeoutMinMs() {
3406
    return dataRatisConsensusLeaderElectionTimeoutMinMs;
1✔
3407
  }
3408

3409
  public void setDataRatisConsensusLeaderElectionTimeoutMinMs(
3410
      long dataRatisConsensusLeaderElectionTimeoutMinMs) {
3411
    this.dataRatisConsensusLeaderElectionTimeoutMinMs =
×
3412
        dataRatisConsensusLeaderElectionTimeoutMinMs;
3413
  }
×
3414

3415
  public long getDataRatisConsensusLeaderElectionTimeoutMaxMs() {
3416
    return dataRatisConsensusLeaderElectionTimeoutMaxMs;
1✔
3417
  }
3418

3419
  public void setDataRatisConsensusLeaderElectionTimeoutMaxMs(
3420
      long dataRatisConsensusLeaderElectionTimeoutMaxMs) {
3421
    this.dataRatisConsensusLeaderElectionTimeoutMaxMs =
×
3422
        dataRatisConsensusLeaderElectionTimeoutMaxMs;
3423
  }
×
3424

3425
  public long getSchemaRatisConsensusLogAppenderBufferSizeMax() {
3426
    return schemaRatisConsensusLogAppenderBufferSizeMax;
1✔
3427
  }
3428

3429
  public void setSchemaRatisConsensusLogAppenderBufferSizeMax(
3430
      long schemaRatisConsensusLogAppenderBufferSizeMax) {
3431
    this.schemaRatisConsensusLogAppenderBufferSizeMax =
×
3432
        schemaRatisConsensusLogAppenderBufferSizeMax;
3433
  }
×
3434

3435
  public long getSchemaRatisConsensusSnapshotTriggerThreshold() {
3436
    return schemaRatisConsensusSnapshotTriggerThreshold;
1✔
3437
  }
3438

3439
  public void setSchemaRatisConsensusSnapshotTriggerThreshold(
3440
      long schemaRatisConsensusSnapshotTriggerThreshold) {
3441
    this.schemaRatisConsensusSnapshotTriggerThreshold =
×
3442
        schemaRatisConsensusSnapshotTriggerThreshold;
3443
  }
×
3444

3445
  public boolean isSchemaRatisConsensusLogUnsafeFlushEnable() {
3446
    return schemaRatisConsensusLogUnsafeFlushEnable;
1✔
3447
  }
3448

3449
  public void setSchemaRatisConsensusLogUnsafeFlushEnable(
3450
      boolean schemaRatisConsensusLogUnsafeFlushEnable) {
3451
    this.schemaRatisConsensusLogUnsafeFlushEnable = schemaRatisConsensusLogUnsafeFlushEnable;
×
3452
  }
×
3453

3454
  public long getSchemaRatisConsensusLogSegmentSizeMax() {
3455
    return schemaRatisConsensusLogSegmentSizeMax;
1✔
3456
  }
3457

3458
  public void setSchemaRatisConsensusLogSegmentSizeMax(long schemaRatisConsensusLogSegmentSizeMax) {
3459
    this.schemaRatisConsensusLogSegmentSizeMax = schemaRatisConsensusLogSegmentSizeMax;
×
3460
  }
×
3461

3462
  public long getSchemaRatisConsensusGrpcFlowControlWindow() {
3463
    return schemaRatisConsensusGrpcFlowControlWindow;
1✔
3464
  }
3465

3466
  public void setSchemaRatisConsensusGrpcFlowControlWindow(
3467
      long schemaRatisConsensusGrpcFlowControlWindow) {
3468
    this.schemaRatisConsensusGrpcFlowControlWindow = schemaRatisConsensusGrpcFlowControlWindow;
×
3469
  }
×
3470

3471
  public long getSchemaRatisConsensusLeaderElectionTimeoutMinMs() {
3472
    return schemaRatisConsensusLeaderElectionTimeoutMinMs;
1✔
3473
  }
3474

3475
  public void setSchemaRatisConsensusLeaderElectionTimeoutMinMs(
3476
      long schemaRatisConsensusLeaderElectionTimeoutMinMs) {
3477
    this.schemaRatisConsensusLeaderElectionTimeoutMinMs =
×
3478
        schemaRatisConsensusLeaderElectionTimeoutMinMs;
3479
  }
×
3480

3481
  public long getSchemaRatisConsensusLeaderElectionTimeoutMaxMs() {
3482
    return schemaRatisConsensusLeaderElectionTimeoutMaxMs;
1✔
3483
  }
3484

3485
  public void setSchemaRatisConsensusLeaderElectionTimeoutMaxMs(
3486
      long schemaRatisConsensusLeaderElectionTimeoutMaxMs) {
3487
    this.schemaRatisConsensusLeaderElectionTimeoutMaxMs =
×
3488
        schemaRatisConsensusLeaderElectionTimeoutMaxMs;
3489
  }
×
3490

3491
  public long getCqMinEveryIntervalInMs() {
3492
    return cqMinEveryIntervalInMs;
×
3493
  }
3494

3495
  public void setCqMinEveryIntervalInMs(long cqMinEveryIntervalInMs) {
3496
    this.cqMinEveryIntervalInMs = cqMinEveryIntervalInMs;
×
3497
  }
×
3498

3499
  public double getUsableCompactionMemoryProportion() {
3500
    return 1.0d - chunkMetadataSizeProportion;
1✔
3501
  }
3502

3503
  public int getPatternMatchingThreshold() {
3504
    return patternMatchingThreshold;
1✔
3505
  }
3506

3507
  public void setPatternMatchingThreshold(int patternMatchingThreshold) {
3508
    this.patternMatchingThreshold = patternMatchingThreshold;
×
3509
  }
×
3510

3511
  public long getDataRatisConsensusRequestTimeoutMs() {
3512
    return dataRatisConsensusRequestTimeoutMs;
1✔
3513
  }
3514

3515
  public void setDataRatisConsensusRequestTimeoutMs(long dataRatisConsensusRequestTimeoutMs) {
3516
    this.dataRatisConsensusRequestTimeoutMs = dataRatisConsensusRequestTimeoutMs;
×
3517
  }
×
3518

3519
  public long getSchemaRatisConsensusRequestTimeoutMs() {
3520
    return schemaRatisConsensusRequestTimeoutMs;
1✔
3521
  }
3522

3523
  public void setSchemaRatisConsensusRequestTimeoutMs(long schemaRatisConsensusRequestTimeoutMs) {
3524
    this.schemaRatisConsensusRequestTimeoutMs = schemaRatisConsensusRequestTimeoutMs;
×
3525
  }
×
3526

3527
  public int getDataRatisConsensusMaxRetryAttempts() {
3528
    return dataRatisConsensusMaxRetryAttempts;
1✔
3529
  }
3530

3531
  public void setDataRatisConsensusMaxRetryAttempts(int dataRatisConsensusMaxRetryAttempts) {
3532
    this.dataRatisConsensusMaxRetryAttempts = dataRatisConsensusMaxRetryAttempts;
×
3533
  }
×
3534

3535
  public int getSchemaRatisConsensusMaxRetryAttempts() {
3536
    return schemaRatisConsensusMaxRetryAttempts;
×
3537
  }
3538

3539
  public void setSchemaRatisConsensusMaxRetryAttempts(int schemaRatisConsensusMaxRetryAttempts) {
3540
    this.schemaRatisConsensusMaxRetryAttempts = schemaRatisConsensusMaxRetryAttempts;
×
3541
  }
×
3542

3543
  public long getDataRatisConsensusInitialSleepTimeMs() {
3544
    return dataRatisConsensusInitialSleepTimeMs;
1✔
3545
  }
3546

3547
  public void setDataRatisConsensusInitialSleepTimeMs(long dataRatisConsensusInitialSleepTimeMs) {
3548
    this.dataRatisConsensusInitialSleepTimeMs = dataRatisConsensusInitialSleepTimeMs;
×
3549
  }
×
3550

3551
  public long getSchemaRatisConsensusInitialSleepTimeMs() {
3552
    return schemaRatisConsensusInitialSleepTimeMs;
×
3553
  }
3554

3555
  public void setSchemaRatisConsensusInitialSleepTimeMs(
3556
      long schemaRatisConsensusInitialSleepTimeMs) {
3557
    this.schemaRatisConsensusInitialSleepTimeMs = schemaRatisConsensusInitialSleepTimeMs;
×
3558
  }
×
3559

3560
  public long getDataRatisConsensusMaxSleepTimeMs() {
3561
    return dataRatisConsensusMaxSleepTimeMs;
1✔
3562
  }
3563

3564
  public void setDataRatisConsensusMaxSleepTimeMs(long dataRatisConsensusMaxSleepTimeMs) {
3565
    this.dataRatisConsensusMaxSleepTimeMs = dataRatisConsensusMaxSleepTimeMs;
×
3566
  }
×
3567

3568
  public long getSchemaRatisConsensusMaxSleepTimeMs() {
3569
    return schemaRatisConsensusMaxSleepTimeMs;
×
3570
  }
3571

3572
  public void setSchemaRatisConsensusMaxSleepTimeMs(long schemaRatisConsensusMaxSleepTimeMs) {
3573
    this.schemaRatisConsensusMaxSleepTimeMs = schemaRatisConsensusMaxSleepTimeMs;
×
3574
  }
×
3575

3576
  public Properties getCustomizedProperties() {
3577
    return customizedProperties;
×
3578
  }
3579

3580
  public void setCustomizedProperties(Properties customizedProperties) {
3581
    this.customizedProperties = customizedProperties;
×
3582
  }
×
3583

3584
  public long getDataRatisConsensusPreserveWhenPurge() {
3585
    return dataRatisConsensusPreserveWhenPurge;
1✔
3586
  }
3587

3588
  public void setDataRatisConsensusPreserveWhenPurge(long dataRatisConsensusPreserveWhenPurge) {
3589
    this.dataRatisConsensusPreserveWhenPurge = dataRatisConsensusPreserveWhenPurge;
×
3590
  }
×
3591

3592
  public long getSchemaRatisConsensusPreserveWhenPurge() {
3593
    return schemaRatisConsensusPreserveWhenPurge;
1✔
3594
  }
3595

3596
  public void setSchemaRatisConsensusPreserveWhenPurge(long schemaRatisConsensusPreserveWhenPurge) {
3597
    this.schemaRatisConsensusPreserveWhenPurge = schemaRatisConsensusPreserveWhenPurge;
×
3598
  }
×
3599

3600
  public long getRatisFirstElectionTimeoutMinMs() {
3601
    return ratisFirstElectionTimeoutMinMs;
1✔
3602
  }
3603

3604
  public void setRatisFirstElectionTimeoutMinMs(long ratisFirstElectionTimeoutMinMs) {
3605
    this.ratisFirstElectionTimeoutMinMs = ratisFirstElectionTimeoutMinMs;
×
3606
  }
×
3607

3608
  public long getRatisFirstElectionTimeoutMaxMs() {
3609
    return ratisFirstElectionTimeoutMaxMs;
1✔
3610
  }
3611

3612
  public void setRatisFirstElectionTimeoutMaxMs(long ratisFirstElectionTimeoutMaxMs) {
3613
    this.ratisFirstElectionTimeoutMaxMs = ratisFirstElectionTimeoutMaxMs;
×
3614
  }
×
3615

3616
  public long getDataRatisLogMax() {
3617
    return dataRatisLogMax;
1✔
3618
  }
3619

3620
  public void setDataRatisLogMax(long dataRatisLogMax) {
3621
    this.dataRatisLogMax = dataRatisLogMax;
×
3622
  }
×
3623

3624
  public long getSchemaRatisLogMax() {
3625
    return schemaRatisLogMax;
1✔
3626
  }
3627

3628
  public void setSchemaRatisLogMax(long schemaRatisLogMax) {
3629
    this.schemaRatisLogMax = schemaRatisLogMax;
×
3630
  }
×
3631

3632
  public CompactionValidationLevel getCompactionValidationLevel() {
3633
    return this.compactionValidationLevel;
1✔
3634
  }
3635

3636
  public void setCompactionValidationLevel(CompactionValidationLevel level) {
3637
    this.compactionValidationLevel = level;
1✔
3638
  }
1✔
3639

3640
  public int getCandidateCompactionTaskQueueSize() {
3641
    return candidateCompactionTaskQueueSize;
1✔
3642
  }
3643

3644
  public void setCandidateCompactionTaskQueueSize(int candidateCompactionTaskQueueSize) {
3645
    this.candidateCompactionTaskQueueSize = candidateCompactionTaskQueueSize;
1✔
3646
  }
1✔
3647

3648
  public boolean isEnableAuditLog() {
3649
    return enableAuditLog;
1✔
3650
  }
3651

3652
  public void setEnableAuditLog(boolean enableAuditLog) {
3653
    this.enableAuditLog = enableAuditLog;
×
3654
  }
×
3655

3656
  public List<AuditLogStorage> getAuditLogStorage() {
3657
    return auditLogStorage;
×
3658
  }
3659

3660
  public void setAuditLogStorage(List<AuditLogStorage> auditLogStorage) {
3661
    this.auditLogStorage = auditLogStorage;
×
3662
  }
×
3663

3664
  public List<AuditLogOperation> getAuditLogOperation() {
3665
    return auditLogOperation;
×
3666
  }
3667

3668
  public void setAuditLogOperation(List<AuditLogOperation> auditLogOperation) {
3669
    this.auditLogOperation = auditLogOperation;
×
3670
  }
×
3671

3672
  public boolean isEnableAuditLogForNativeInsertApi() {
3673
    return enableAuditLogForNativeInsertApi;
×
3674
  }
3675

3676
  public void setEnableAuditLogForNativeInsertApi(boolean enableAuditLogForNativeInsertApi) {
3677
    this.enableAuditLogForNativeInsertApi = enableAuditLogForNativeInsertApi;
×
3678
  }
×
3679

3680
  public void setModeMapSizeThreshold(int modeMapSizeThreshold) {
3681
    this.modeMapSizeThreshold = modeMapSizeThreshold;
1✔
3682
  }
1✔
3683

3684
  public int getModeMapSizeThreshold() {
3685
    return modeMapSizeThreshold;
1✔
3686
  }
3687

3688
  public void setPipeReceiverFileDir(String pipeReceiverFileDir) {
3689
    this.pipeReceiverFileDir = pipeReceiverFileDir;
1✔
3690
  }
1✔
3691

3692
  public String getPipeReceiverFileDir() {
3693
    return pipeReceiverFileDir;
1✔
3694
  }
3695

3696
  public boolean isQuotaEnable() {
3697
    return quotaEnable;
1✔
3698
  }
3699

3700
  public void setQuotaEnable(boolean quotaEnable) {
3701
    this.quotaEnable = quotaEnable;
1✔
3702
  }
1✔
3703

3704
  public String getRateLimiterType() {
3705
    return RateLimiterType;
1✔
3706
  }
3707

3708
  public void setRateLimiterType(String rateLimiterType) {
3709
    RateLimiterType = rateLimiterType;
1✔
3710
  }
1✔
3711

3712
  public void setSortBufferSize(long sortBufferSize) {
3713
    this.sortBufferSize = sortBufferSize;
1✔
3714
  }
1✔
3715

3716
  public long getSortBufferSize() {
3717
    return sortBufferSize;
1✔
3718
  }
3719

3720
  public void setSortTmpDir(String sortTmpDir) {
3721
    this.sortTmpDir = sortTmpDir;
1✔
3722
  }
1✔
3723

3724
  public String getSortTmpDir() {
3725
    return sortTmpDir;
1✔
3726
  }
3727

3728
  public String getClusterSchemaLimitLevel() {
3729
    return clusterSchemaLimitLevel;
1✔
3730
  }
3731

3732
  public void setClusterSchemaLimitLevel(String clusterSchemaLimitLevel) {
3733
    this.clusterSchemaLimitLevel = clusterSchemaLimitLevel;
1✔
3734
  }
1✔
3735

3736
  public long getClusterSchemaLimitThreshold() {
3737
    return clusterSchemaLimitThreshold;
1✔
3738
  }
3739

3740
  public void setClusterSchemaLimitThreshold(long clusterSchemaLimitThreshold) {
3741
    this.clusterSchemaLimitThreshold = clusterSchemaLimitThreshold;
1✔
3742
  }
1✔
3743

3744
  public String getObjectStorageBucket() {
3745
    throw new UnsupportedOperationException("object storage is not supported yet");
×
3746
  }
3747
}
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