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

apache / iotdb / #9962

30 Aug 2023 06:15AM UTC coverage: 47.659% (-0.02%) from 47.675%
#9962

push

travis_ci

web-flow
[To rel/1.2][IOTDB-6061] Fix the instability failure caused by initServer in IoTConsensus UT not binding to the corresponding port (#10995)

80085 of 168038 relevant lines covered (47.66%)

0.48 hits per line

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

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

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

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

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

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

71
public class IoTDBConfig {
72

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

167
  private int maxLoadingTimeseriesNumber = 2000;
1✔
168

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

342
  private int modeMapSizeThreshold = 10000;
1✔
343

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

467
  private double chunkMetadataSizeProportion = 0.1;
1✔
468

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

772
  private boolean enable13DataInsertAdapt = false;
1✔
773

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

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

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

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

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

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

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

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

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

807
  private int patternMatchingThreshold = 1000000;
1✔
808

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

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

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

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

824
  private boolean enableDiscardOutOfOrderData = false;
1✔
825

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

943
  private int devicePathCacheSize = 500_000;
1✔
944

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1011
  private int dataRatisConsensusLogForceSyncNum = 128;
1✔
1012

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

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

1019
  private int dataRatisConsensusGrpcLeaderOutstandingAppendsMax = 128;
1✔
1020

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1092
  IoTDBConfig() {}
1✔
1093

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3410
  public void setDataRatisConsensusLeaderElectionTimeoutMinMs(
3411
      long dataRatisConsensusLeaderElectionTimeoutMinMs) {
3412
    this.dataRatisConsensusLeaderElectionTimeoutMinMs =
×
3413
        dataRatisConsensusLeaderElectionTimeoutMinMs;
3414
  }
×
3415

3416
  public long getDataRatisConsensusLeaderElectionTimeoutMaxMs() {
3417
    return dataRatisConsensusLeaderElectionTimeoutMaxMs;
1✔
3418
  }
3419

3420
  public void setDataRatisConsensusLeaderElectionTimeoutMaxMs(
3421
      long dataRatisConsensusLeaderElectionTimeoutMaxMs) {
3422
    this.dataRatisConsensusLeaderElectionTimeoutMaxMs =
×
3423
        dataRatisConsensusLeaderElectionTimeoutMaxMs;
3424
  }
×
3425

3426
  public long getSchemaRatisConsensusLogAppenderBufferSizeMax() {
3427
    return schemaRatisConsensusLogAppenderBufferSizeMax;
1✔
3428
  }
3429

3430
  public void setSchemaRatisConsensusLogAppenderBufferSizeMax(
3431
      long schemaRatisConsensusLogAppenderBufferSizeMax) {
3432
    this.schemaRatisConsensusLogAppenderBufferSizeMax =
×
3433
        schemaRatisConsensusLogAppenderBufferSizeMax;
3434
  }
×
3435

3436
  public long getSchemaRatisConsensusSnapshotTriggerThreshold() {
3437
    return schemaRatisConsensusSnapshotTriggerThreshold;
1✔
3438
  }
3439

3440
  public void setSchemaRatisConsensusSnapshotTriggerThreshold(
3441
      long schemaRatisConsensusSnapshotTriggerThreshold) {
3442
    this.schemaRatisConsensusSnapshotTriggerThreshold =
×
3443
        schemaRatisConsensusSnapshotTriggerThreshold;
3444
  }
×
3445

3446
  public boolean isSchemaRatisConsensusLogUnsafeFlushEnable() {
3447
    return schemaRatisConsensusLogUnsafeFlushEnable;
1✔
3448
  }
3449

3450
  public void setSchemaRatisConsensusLogUnsafeFlushEnable(
3451
      boolean schemaRatisConsensusLogUnsafeFlushEnable) {
3452
    this.schemaRatisConsensusLogUnsafeFlushEnable = schemaRatisConsensusLogUnsafeFlushEnable;
×
3453
  }
×
3454

3455
  public long getSchemaRatisConsensusLogSegmentSizeMax() {
3456
    return schemaRatisConsensusLogSegmentSizeMax;
1✔
3457
  }
3458

3459
  public void setSchemaRatisConsensusLogSegmentSizeMax(long schemaRatisConsensusLogSegmentSizeMax) {
3460
    this.schemaRatisConsensusLogSegmentSizeMax = schemaRatisConsensusLogSegmentSizeMax;
×
3461
  }
×
3462

3463
  public long getSchemaRatisConsensusGrpcFlowControlWindow() {
3464
    return schemaRatisConsensusGrpcFlowControlWindow;
1✔
3465
  }
3466

3467
  public void setSchemaRatisConsensusGrpcFlowControlWindow(
3468
      long schemaRatisConsensusGrpcFlowControlWindow) {
3469
    this.schemaRatisConsensusGrpcFlowControlWindow = schemaRatisConsensusGrpcFlowControlWindow;
×
3470
  }
×
3471

3472
  public long getSchemaRatisConsensusLeaderElectionTimeoutMinMs() {
3473
    return schemaRatisConsensusLeaderElectionTimeoutMinMs;
1✔
3474
  }
3475

3476
  public void setSchemaRatisConsensusLeaderElectionTimeoutMinMs(
3477
      long schemaRatisConsensusLeaderElectionTimeoutMinMs) {
3478
    this.schemaRatisConsensusLeaderElectionTimeoutMinMs =
×
3479
        schemaRatisConsensusLeaderElectionTimeoutMinMs;
3480
  }
×
3481

3482
  public long getSchemaRatisConsensusLeaderElectionTimeoutMaxMs() {
3483
    return schemaRatisConsensusLeaderElectionTimeoutMaxMs;
1✔
3484
  }
3485

3486
  public void setSchemaRatisConsensusLeaderElectionTimeoutMaxMs(
3487
      long schemaRatisConsensusLeaderElectionTimeoutMaxMs) {
3488
    this.schemaRatisConsensusLeaderElectionTimeoutMaxMs =
×
3489
        schemaRatisConsensusLeaderElectionTimeoutMaxMs;
3490
  }
×
3491

3492
  public long getCqMinEveryIntervalInMs() {
3493
    return cqMinEveryIntervalInMs;
×
3494
  }
3495

3496
  public void setCqMinEveryIntervalInMs(long cqMinEveryIntervalInMs) {
3497
    this.cqMinEveryIntervalInMs = cqMinEveryIntervalInMs;
×
3498
  }
×
3499

3500
  public double getUsableCompactionMemoryProportion() {
3501
    return 1.0d - chunkMetadataSizeProportion;
1✔
3502
  }
3503

3504
  public int getPatternMatchingThreshold() {
3505
    return patternMatchingThreshold;
1✔
3506
  }
3507

3508
  public void setPatternMatchingThreshold(int patternMatchingThreshold) {
3509
    this.patternMatchingThreshold = patternMatchingThreshold;
×
3510
  }
×
3511

3512
  public long getDataRatisConsensusRequestTimeoutMs() {
3513
    return dataRatisConsensusRequestTimeoutMs;
1✔
3514
  }
3515

3516
  public void setDataRatisConsensusRequestTimeoutMs(long dataRatisConsensusRequestTimeoutMs) {
3517
    this.dataRatisConsensusRequestTimeoutMs = dataRatisConsensusRequestTimeoutMs;
×
3518
  }
×
3519

3520
  public long getSchemaRatisConsensusRequestTimeoutMs() {
3521
    return schemaRatisConsensusRequestTimeoutMs;
1✔
3522
  }
3523

3524
  public void setSchemaRatisConsensusRequestTimeoutMs(long schemaRatisConsensusRequestTimeoutMs) {
3525
    this.schemaRatisConsensusRequestTimeoutMs = schemaRatisConsensusRequestTimeoutMs;
×
3526
  }
×
3527

3528
  public int getDataRatisConsensusMaxRetryAttempts() {
3529
    return dataRatisConsensusMaxRetryAttempts;
1✔
3530
  }
3531

3532
  public void setDataRatisConsensusMaxRetryAttempts(int dataRatisConsensusMaxRetryAttempts) {
3533
    this.dataRatisConsensusMaxRetryAttempts = dataRatisConsensusMaxRetryAttempts;
×
3534
  }
×
3535

3536
  public int getSchemaRatisConsensusMaxRetryAttempts() {
3537
    return schemaRatisConsensusMaxRetryAttempts;
×
3538
  }
3539

3540
  public void setSchemaRatisConsensusMaxRetryAttempts(int schemaRatisConsensusMaxRetryAttempts) {
3541
    this.schemaRatisConsensusMaxRetryAttempts = schemaRatisConsensusMaxRetryAttempts;
×
3542
  }
×
3543

3544
  public long getDataRatisConsensusInitialSleepTimeMs() {
3545
    return dataRatisConsensusInitialSleepTimeMs;
1✔
3546
  }
3547

3548
  public void setDataRatisConsensusInitialSleepTimeMs(long dataRatisConsensusInitialSleepTimeMs) {
3549
    this.dataRatisConsensusInitialSleepTimeMs = dataRatisConsensusInitialSleepTimeMs;
×
3550
  }
×
3551

3552
  public long getSchemaRatisConsensusInitialSleepTimeMs() {
3553
    return schemaRatisConsensusInitialSleepTimeMs;
×
3554
  }
3555

3556
  public void setSchemaRatisConsensusInitialSleepTimeMs(
3557
      long schemaRatisConsensusInitialSleepTimeMs) {
3558
    this.schemaRatisConsensusInitialSleepTimeMs = schemaRatisConsensusInitialSleepTimeMs;
×
3559
  }
×
3560

3561
  public long getDataRatisConsensusMaxSleepTimeMs() {
3562
    return dataRatisConsensusMaxSleepTimeMs;
1✔
3563
  }
3564

3565
  public void setDataRatisConsensusMaxSleepTimeMs(long dataRatisConsensusMaxSleepTimeMs) {
3566
    this.dataRatisConsensusMaxSleepTimeMs = dataRatisConsensusMaxSleepTimeMs;
×
3567
  }
×
3568

3569
  public long getSchemaRatisConsensusMaxSleepTimeMs() {
3570
    return schemaRatisConsensusMaxSleepTimeMs;
×
3571
  }
3572

3573
  public void setSchemaRatisConsensusMaxSleepTimeMs(long schemaRatisConsensusMaxSleepTimeMs) {
3574
    this.schemaRatisConsensusMaxSleepTimeMs = schemaRatisConsensusMaxSleepTimeMs;
×
3575
  }
×
3576

3577
  public Properties getCustomizedProperties() {
3578
    return customizedProperties;
×
3579
  }
3580

3581
  public void setCustomizedProperties(Properties customizedProperties) {
3582
    this.customizedProperties = customizedProperties;
×
3583
  }
×
3584

3585
  public long getDataRatisConsensusPreserveWhenPurge() {
3586
    return dataRatisConsensusPreserveWhenPurge;
1✔
3587
  }
3588

3589
  public void setDataRatisConsensusPreserveWhenPurge(long dataRatisConsensusPreserveWhenPurge) {
3590
    this.dataRatisConsensusPreserveWhenPurge = dataRatisConsensusPreserveWhenPurge;
×
3591
  }
×
3592

3593
  public long getSchemaRatisConsensusPreserveWhenPurge() {
3594
    return schemaRatisConsensusPreserveWhenPurge;
1✔
3595
  }
3596

3597
  public void setSchemaRatisConsensusPreserveWhenPurge(long schemaRatisConsensusPreserveWhenPurge) {
3598
    this.schemaRatisConsensusPreserveWhenPurge = schemaRatisConsensusPreserveWhenPurge;
×
3599
  }
×
3600

3601
  public long getRatisFirstElectionTimeoutMinMs() {
3602
    return ratisFirstElectionTimeoutMinMs;
1✔
3603
  }
3604

3605
  public void setRatisFirstElectionTimeoutMinMs(long ratisFirstElectionTimeoutMinMs) {
3606
    this.ratisFirstElectionTimeoutMinMs = ratisFirstElectionTimeoutMinMs;
×
3607
  }
×
3608

3609
  public long getRatisFirstElectionTimeoutMaxMs() {
3610
    return ratisFirstElectionTimeoutMaxMs;
1✔
3611
  }
3612

3613
  public void setRatisFirstElectionTimeoutMaxMs(long ratisFirstElectionTimeoutMaxMs) {
3614
    this.ratisFirstElectionTimeoutMaxMs = ratisFirstElectionTimeoutMaxMs;
×
3615
  }
×
3616

3617
  public long getDataRatisLogMax() {
3618
    return dataRatisLogMax;
1✔
3619
  }
3620

3621
  public void setDataRatisLogMax(long dataRatisLogMax) {
3622
    this.dataRatisLogMax = dataRatisLogMax;
×
3623
  }
×
3624

3625
  public long getSchemaRatisLogMax() {
3626
    return schemaRatisLogMax;
1✔
3627
  }
3628

3629
  public void setSchemaRatisLogMax(long schemaRatisLogMax) {
3630
    this.schemaRatisLogMax = schemaRatisLogMax;
×
3631
  }
×
3632

3633
  public CompactionValidationLevel getCompactionValidationLevel() {
3634
    return this.compactionValidationLevel;
1✔
3635
  }
3636

3637
  public void setCompactionValidationLevel(CompactionValidationLevel level) {
3638
    this.compactionValidationLevel = level;
1✔
3639
  }
1✔
3640

3641
  public int getCandidateCompactionTaskQueueSize() {
3642
    return candidateCompactionTaskQueueSize;
1✔
3643
  }
3644

3645
  public void setCandidateCompactionTaskQueueSize(int candidateCompactionTaskQueueSize) {
3646
    this.candidateCompactionTaskQueueSize = candidateCompactionTaskQueueSize;
1✔
3647
  }
1✔
3648

3649
  public boolean isEnableAuditLog() {
3650
    return enableAuditLog;
1✔
3651
  }
3652

3653
  public void setEnableAuditLog(boolean enableAuditLog) {
3654
    this.enableAuditLog = enableAuditLog;
×
3655
  }
×
3656

3657
  public List<AuditLogStorage> getAuditLogStorage() {
3658
    return auditLogStorage;
×
3659
  }
3660

3661
  public void setAuditLogStorage(List<AuditLogStorage> auditLogStorage) {
3662
    this.auditLogStorage = auditLogStorage;
×
3663
  }
×
3664

3665
  public List<AuditLogOperation> getAuditLogOperation() {
3666
    return auditLogOperation;
×
3667
  }
3668

3669
  public void setAuditLogOperation(List<AuditLogOperation> auditLogOperation) {
3670
    this.auditLogOperation = auditLogOperation;
×
3671
  }
×
3672

3673
  public boolean isEnableAuditLogForNativeInsertApi() {
3674
    return enableAuditLogForNativeInsertApi;
×
3675
  }
3676

3677
  public void setEnableAuditLogForNativeInsertApi(boolean enableAuditLogForNativeInsertApi) {
3678
    this.enableAuditLogForNativeInsertApi = enableAuditLogForNativeInsertApi;
×
3679
  }
×
3680

3681
  public void setModeMapSizeThreshold(int modeMapSizeThreshold) {
3682
    this.modeMapSizeThreshold = modeMapSizeThreshold;
1✔
3683
  }
1✔
3684

3685
  public int getModeMapSizeThreshold() {
3686
    return modeMapSizeThreshold;
1✔
3687
  }
3688

3689
  public void setPipeReceiverFileDir(String pipeReceiverFileDir) {
3690
    this.pipeReceiverFileDir = pipeReceiverFileDir;
1✔
3691
  }
1✔
3692

3693
  public String getPipeReceiverFileDir() {
3694
    return pipeReceiverFileDir;
1✔
3695
  }
3696

3697
  public boolean isQuotaEnable() {
3698
    return quotaEnable;
1✔
3699
  }
3700

3701
  public void setQuotaEnable(boolean quotaEnable) {
3702
    this.quotaEnable = quotaEnable;
1✔
3703
  }
1✔
3704

3705
  public String getRateLimiterType() {
3706
    return RateLimiterType;
1✔
3707
  }
3708

3709
  public void setRateLimiterType(String rateLimiterType) {
3710
    RateLimiterType = rateLimiterType;
1✔
3711
  }
1✔
3712

3713
  public void setSortBufferSize(long sortBufferSize) {
3714
    this.sortBufferSize = sortBufferSize;
1✔
3715
  }
1✔
3716

3717
  public long getSortBufferSize() {
3718
    return sortBufferSize;
1✔
3719
  }
3720

3721
  public void setSortTmpDir(String sortTmpDir) {
3722
    this.sortTmpDir = sortTmpDir;
1✔
3723
  }
1✔
3724

3725
  public String getSortTmpDir() {
3726
    return sortTmpDir;
1✔
3727
  }
3728

3729
  public String getClusterSchemaLimitLevel() {
3730
    return clusterSchemaLimitLevel;
1✔
3731
  }
3732

3733
  public void setClusterSchemaLimitLevel(String clusterSchemaLimitLevel) {
3734
    this.clusterSchemaLimitLevel = clusterSchemaLimitLevel;
1✔
3735
  }
1✔
3736

3737
  public long getClusterSchemaLimitThreshold() {
3738
    return clusterSchemaLimitThreshold;
1✔
3739
  }
3740

3741
  public void setClusterSchemaLimitThreshold(long clusterSchemaLimitThreshold) {
3742
    this.clusterSchemaLimitThreshold = clusterSchemaLimitThreshold;
1✔
3743
  }
1✔
3744

3745
  public String getObjectStorageBucket() {
3746
    throw new UnsupportedOperationException("object storage is not supported yet");
×
3747
  }
3748
}
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