You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by wa...@apache.org on 2022/03/19 04:28:51 UTC

[iotdb] branch master updated: [IOTDB-2730] Config node server (#5284)

This is an automated email from the ASF dual-hosted git repository.

wangchao316 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new d8fd5b3  [IOTDB-2730] Config node server (#5284)
d8fd5b3 is described below

commit d8fd5b35a9d0bb9ad4945baf56c7cd63954c7f65
Author: wangchao316 <66...@users.noreply.github.com>
AuthorDate: Sat Mar 19 12:27:37 2022 +0800

    [IOTDB-2730] Config node server (#5284)
    
    [IOTDB-2730] Config node server (#5284)
---
 .../java/org/apache/iotdb/cluster/ClientMain.java  |   2 +-
 .../org/apache/iotdb/cluster/ClusterIoTDB.java     |  20 ++--
 .../iotdb/cluster/config/ClusterDescriptor.java    |   2 +-
 .../iotdb/cluster/coordinator/Coordinator.java     |   2 +-
 .../apache/iotdb/cluster/log/LogDispatcher.java    |   4 +-
 .../iotdb/cluster/log/catchup/LogCatchUpTask.java  |   2 +-
 .../iotdb/cluster/log/manage/RaftLogManager.java   |   2 +-
 .../serializable/SyncLogDequeSerializer.java       |   2 +-
 .../iotdb/cluster/metadata/CSchemaEngine.java      |   2 +-
 .../iotdb/cluster/query/ClusterPlanExecutor.java   |   2 +-
 .../query/last/ClusterLastQueryExecutor.java       |   2 +-
 .../iotdb/cluster/server/ClusterRPCService.java    |  10 +-
 .../cluster/server/ClusterRPCServiceMBean.java     |   2 +-
 .../cluster/server/PullSnapshotHintService.java    |   2 +-
 .../server/clusterinfo/ClusterInfoServer.java      |  10 +-
 .../cluster/server/member/DataGroupMember.java     |   6 +-
 .../cluster/server/member/MetaGroupMember.java     |   6 +-
 .../iotdb/cluster/server/member/RaftMember.java    |   8 +-
 .../cluster/server/raft/AbstractRaftService.java   |   6 +-
 .../server/raft/DataRaftHeartBeatService.java      |   8 +-
 .../iotdb/cluster/server/raft/DataRaftService.java |   8 +-
 .../server/raft/MetaRaftHeartBeatService.java      |   8 +-
 .../iotdb/cluster/server/raft/MetaRaftService.java |   8 +-
 .../cluster/server/service/DataGroupEngine.java    |   6 +-
 .../apache/iotdb/cluster/utils/PlanSerializer.java |   4 +-
 .../cluster/utils/nodetool/ClusterMonitor.java     |  14 +--
 .../org/apache/iotdb/cluster/common/IoTDBTest.java |   4 +-
 .../iotdb/cluster/integration/SingleNodeTest.java  |   2 +-
 .../iotdb/cluster/log/LogDispatcherTest.java       |   2 +-
 .../cluster/log/applier/DataLogApplierTest.java    |   8 +-
 .../cluster/log/catchup/LogCatchUpTaskTest.java    |   2 +-
 .../manage/MetaSingleSnapshotLogManagerTest.java   |   2 +-
 .../serializable/SyncLogDequeSerializerTest.java   |   2 +-
 .../cluster/log/snapshot/DataSnapshotTest.java     |   2 +-
 .../log/snapshot/MetaSimpleSnapshotTest.java       |   5 +-
 .../cluster/log/snapshot/PullSnapshotTaskTest.java |   2 +-
 .../query/ClusterUDTFQueryExecutorTest.java        |   2 +-
 .../iotdb/cluster/server/member/BaseMember.java    |   2 +-
 .../resources/conf/iotdb-confignode.properties     |  41 +++++++-
 .../iotdb/confignode/conf/ConfigNodeConf.java      | 116 ++++++++++++++++++++-
 .../iotdb/confignode/service/ConfigNode.java       |  31 +++---
 .../iotdb/confignode/service/ConfigNodeMBean.java  |  25 -----
 .../confignode/service/register/IService.java      |  51 ---------
 .../confignode/service/register/JMXService.java    | 105 -------------------
 .../service/register/RegisterManager.java          |  82 ---------------
 .../confignode/service/register/ServiceType.java   |  44 --------
 .../confignode/service/startup/StartupCheck.java   |  28 -----
 .../confignode/service/startup/StartupChecks.java  |  89 ----------------
 .../service/thrift/server/ConfigNodeRPCServer.java |  88 ++++++++++++----
 ...rver.java => ConfigNodeRPCServerProcessor.java} |   6 +-
 .../thrift/server/ConfigNodeRPCServiceHandler.java |  52 +++++++++
 .../utils/ConfigNodeEnvironmentUtils.java          |   9 +-
 .../apache/iotdb/db/integration/IoTDBDaemonIT.java |   2 +-
 .../iotdb/db/integration/IoTDBLargeDataIT.java     |   2 +-
 .../iotdb/db/integration/IoTDBMetadataFetchIT.java |   2 +-
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |   2 +-
 .../db/integration/IoTDBRecoverUnclosedIT.java     |   2 +-
 .../iotdb/db/integration/IoTDBUDFManagementIT.java |   6 +-
 .../iotdb/session/IoTDBSessionComplexIT.java       |   2 +-
 .../iotdb/session/IoTDBSessionIteratorIT.java      |   2 +-
 .../apache/iotdb/session/IoTDBSessionSimpleIT.java |   2 +-
 .../session/IoTDBSessionSyntaxConventionIT.java    |   2 +-
 integration/src/test/resources/logback.xml         |   4 +-
 {iotdb-commons => node-commons}/pom.xml            |  20 +++-
 .../apache/iotdb/commons/ServerCommandLine.java    |   0
 .../apache/iotdb/commons}/concurrent/HashLock.java |   2 +-
 .../concurrent/IoTDBDaemonThreadFactory.java       |   2 +-
 .../IoTDBDefaultThreadExceptionHandler.java        |   2 +-
 .../concurrent/IoTDBThreadPoolFactory.java         |  10 +-
 .../commons}/concurrent/IoTThreadFactory.java      |   2 +-
 .../iotdb/commons}/concurrent/ThreadName.java      |   2 +-
 .../iotdb/commons}/concurrent/WrappedRunnable.java |   2 +-
 .../concurrent/threadpool/IThreadPoolMBean.java    |   2 +-
 .../WrappedScheduledExecutorService.java           |   6 +-
 .../WrappedScheduledExecutorServiceMBean.java      |   2 +-
 .../WrappedSingleThreadExecutorService.java        |   6 +-
 .../WrappedSingleThreadExecutorServiceMBean.java   |   2 +-
 .../WrappedSingleThreadScheduledExecutor.java      |   6 +-
 .../WrappedSingleThreadScheduledExecutorMBean.java |   2 +-
 .../threadpool/WrappedThreadPoolExecutor.java      |   8 +-
 .../threadpool/WrappedThreadPoolExecutorMBean.java |   2 +-
 .../apache/iotdb/commons}/conf/IoTDBConstant.java  |   2 +-
 .../iotdb/commons}/exception/IoTDBException.java   |   2 +-
 .../commons}/exception/ShutdownException.java      |   2 +-
 .../iotdb/commons}/exception/StartupException.java |   2 +-
 .../exception/runtime/RPCServiceException.java     |   2 +-
 .../apache/iotdb/commons/hash/APHashExecutor.java  |   0
 .../iotdb/commons/hash/BKDRHashExecutor.java       |   0
 .../commons/hash/DeviceGroupHashExecutor.java      |   0
 .../apache/iotdb/commons/hash/JSHashExecutor.java  |   0
 .../iotdb/commons/hash/SDBMHashExecutor.java       |   0
 .../service/AbstractThriftServiceThread.java       |  35 ++++---
 .../apache/iotdb/commons}/service/IService.java    |   6 +-
 .../apache/iotdb/commons}/service/JMXService.java  |   4 +-
 .../iotdb/commons}/service/RegisterManager.java    |   6 +-
 .../apache/iotdb/commons}/service/ServiceType.java |   9 +-
 .../iotdb/commons}/service/StartupCheck.java       |   4 +-
 .../iotdb/commons}/service/StartupChecks.java      |  10 +-
 .../iotdb/commons/service}/ThriftService.java      |  10 +-
 .../iotdb/commons/service/ThriftServiceThread.java |  89 ++++++++++++++++
 .../apache/iotdb/commons/utils/JVMCommonUtils.java |  81 ++++++++++++++
 .../org/apache/iotdb/commons/utils/TestOnly.java   |   0
 .../IoTDBDefaultThreadExceptionHandlerTest.java    |   2 +-
 .../iotdb/commons}/IoTDBThreadPoolFactoryTest.java |   5 +-
 pom.xml                                            |   2 +-
 .../org/apache/iotdb/db/auth/AuthorityChecker.java |   2 +-
 .../iotdb/db/auth/authorizer/BasicAuthorizer.java  |   8 +-
 .../iotdb/db/auth/role/BasicRoleManager.java       |   2 +-
 .../iotdb/db/auth/role/LocalFileRoleAccessor.java  |   2 +-
 .../iotdb/db/auth/user/BasicUserManager.java       |   2 +-
 .../iotdb/db/auth/user/LocalFileUserAccessor.java  |   2 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |   1 +
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java |   1 +
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |   5 +-
 .../db/conf/directories/DirectoryManager.java      |   2 +-
 .../directories/strategy/DirectoryStrategy.java    |   4 +-
 .../strategy/MaxDiskUsableSpaceFirstStrategy.java  |   6 +-
 .../MinFolderOccupiedSpaceFirstStrategy.java       |   6 +-
 .../strategy/RandomOnDiskUsableSpaceStrategy.java  |   4 +-
 .../directories/strategy/SequenceStrategy.java     |   6 +-
 .../db/conf/rest/IoTDBRestServiceDescriptor.java   |   2 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  |  10 +-
 .../db/engine/cache/CacheHitRatioMonitor.java      |  10 +-
 .../db/engine/cache/TimeSeriesMetadataCache.java   |   2 +-
 .../engine/compaction/CompactionTaskManager.java   |  12 +--
 .../db/engine/compaction/CompactionUtils.java      |   2 +-
 .../db/engine/compaction/TsFileIdentifier.java     |   2 +-
 .../CrossSpaceCompactionExceptionHandler.java      |   2 +-
 .../RewriteCrossSpaceCompactionSelector.java       |   2 +-
 .../task/RewriteCrossCompactionRecoverTask.java    |   2 +-
 .../task/RewriteCrossSpaceCompactionTask.java      |   2 +-
 .../inner/AbstractInnerSpaceCompactionTask.java    |   2 +-
 .../InnerSpaceCompactionExceptionHandler.java      |   2 +-
 .../SizeTieredCompactionRecoverTask.java           |   2 +-
 .../sizetiered/SizeTieredCompactionSelector.java   |   2 +-
 .../inner/sizetiered/SizeTieredCompactionTask.java |   2 +-
 .../inner/utils/InnerSpaceCompactionUtils.java     |   2 +-
 .../compaction/task/AbstractCompactionTask.java    |   2 +-
 .../compaction/task/CompactionRecoverTask.java     |   2 +-
 .../utils/log/CompactionLogAnalyzer.java           |   2 +-
 .../iotdb/db/engine/cq/ContinuousQueryService.java |   8 +-
 .../iotdb/db/engine/cq/ContinuousQueryTask.java    |   4 +-
 .../engine/cq/ContinuousQueryTaskPoolManager.java  |   4 +-
 .../apache/iotdb/db/engine/flush/FlushManager.java |  10 +-
 .../engine/flush/pool/FlushSubTaskPoolManager.java |   4 +-
 .../db/engine/flush/pool/FlushTaskPoolManager.java |   4 +-
 .../apache/iotdb/db/engine/settle/SettleTask.java  |   2 +-
 .../db/engine/storagegroup/TsFileManager.java      |   2 +-
 .../engine/storagegroup/TsFileNameGenerator.java   |   4 +-
 .../db/engine/storagegroup/TsFileResource.java     |   2 +-
 .../storagegroup/VirtualStorageGroupProcessor.java |   8 +-
 .../virtualSg/StorageGroupManager.java             |   2 +-
 .../service/TriggerRegistrationService.java        |  22 ++--
 .../iotdb/db/engine/upgrade/UpgradeTask.java       |   2 +-
 .../iotdb/db/exception/ConfigurationException.java |   1 +
 .../iotdb/db/exception/LoadFileException.java      |   1 +
 .../apache/iotdb/db/exception/MergeException.java  |   1 +
 .../db/exception/QueryIdNotExsitException.java     |   1 +
 .../exception/QueryInBatchStatementException.java  |   1 +
 .../iotdb/db/exception/StorageEngineException.java |   1 +
 .../exception/StorageGroupProcessorException.java  |   1 +
 .../db/exception/SyncConnectionException.java      |   1 +
 .../SyncDeviceOwnerConflictException.java          |   1 +
 .../iotdb/db/exception/SystemCheckException.java   |   1 +
 .../db/exception/TsFileProcessorException.java     |   1 +
 .../iotdb/db/exception/WriteProcessException.java  |   1 +
 .../db/exception/index/IndexManagerException.java  |   2 +-
 .../db/exception/metadata/MetadataException.java   |   2 +-
 .../exception/query/LogicalOperatorException.java  |   2 +-
 .../exception/query/LogicalOptimizeException.java  |   2 +-
 .../db/exception/query/QueryProcessException.java  |   2 +-
 .../apache/iotdb/db/metadata/MetadataConstant.java |   2 +-
 .../org/apache/iotdb/db/metadata/SchemaEngine.java |   4 +-
 .../db/metadata/StorageGroupSchemaManager.java     |   4 +-
 .../org/apache/iotdb/db/metadata/mnode/MNode.java  |   2 +-
 .../iotdb/db/metadata/mtree/MTreeAboveSG.java      |   4 +-
 .../iotdb/db/metadata/mtree/MTreeBelowSG.java      |   2 +-
 .../db/metadata/mtree/traverser/Traverser.java     |   6 +-
 .../iotdb/db/metadata/path/MeasurementPath.java    |   2 +-
 .../apache/iotdb/db/metadata/path/PartialPath.java |   4 +-
 .../db/metadata/template/TemplateManager.java      |   2 +-
 .../db/metadata/upgrade/MetadataUpgrader.java      |   4 +-
 .../iotdb/db/metadata/utils/MetaFormatUtils.java   |  10 +-
 .../apache/iotdb/db/metadata/utils/MetaUtils.java  |   2 +-
 .../influxdb/meta/InfluxDBMetaManager.java         |   2 +-
 .../apache/iotdb/db/protocol/rest/RestService.java |   6 +-
 .../db/protocol/rest/handler/ExceptionHandler.java |   2 +-
 .../protocol/rest/impl/GrafanaApiServiceImpl.java  |   2 +-
 .../db/protocol/rest/impl/PingApiServiceImpl.java  |   2 +-
 .../db/protocol/rest/impl/RestApiServiceImpl.java  |   2 +-
 .../main/java/org/apache/iotdb/db/qp/Planner.java  |   2 +-
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |  76 +++++++-------
 .../db/qp/logical/crud/BasicOperatorType.java      |   2 +-
 .../db/qp/logical/crud/DeleteDataOperator.java     |   2 +-
 .../iotdb/db/qp/physical/crud/InsertRowPlan.java   |   2 +-
 .../iotdb/db/qp/physical/sys/SetTemplatePlan.java  |   2 +-
 .../db/qp/physical/sys/UnsetTemplatePlan.java      |   2 +-
 .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java    |   2 +-
 .../iotdb/db/qp/strategy/LogicalGenerator.java     |   4 +-
 .../iotdb/db/qp/utils/GroupByLevelController.java  |   2 +-
 .../iotdb/db/query/control/QueryTimeManager.java   |   6 +-
 .../iotdb/db/query/control/SessionManager.java     |   2 +-
 .../db/query/control/SessionTimeoutManager.java    |   2 +-
 .../db/query/dataset/NonAlignEngineDataSet.java    |   2 +-
 .../dataset/RawQueryDataSetWithoutValueFilter.java |   2 +-
 .../iotdb/db/query/dataset/ShowDevicesDataSet.java |   6 +-
 .../db/query/dataset/ShowTimeseriesDataSet.java    |  16 +--
 .../db/query/executor/AggregationExecutor.java     |   2 +-
 .../iotdb/db/query/executor/LastQueryExecutor.java |   6 +-
 .../query/expression/unary/FunctionExpression.java |   2 +-
 .../iotdb/db/query/pool/QueryTaskManager.java      |   4 +-
 .../db/query/pool/RawQueryReadTaskPoolManager.java |   4 +-
 .../row/SerializableRowRecordList.java             |   2 +-
 .../datastructure/tv/SerializableBinaryTVList.java |   2 +-
 .../tv/SerializableBooleanTVList.java              |   2 +-
 .../datastructure/tv/SerializableDoubleTVList.java |   2 +-
 .../datastructure/tv/SerializableFloatTVList.java  |   2 +-
 .../datastructure/tv/SerializableIntTVList.java    |   2 +-
 .../datastructure/tv/SerializableLongTVList.java   |   2 +-
 .../udf/service/TemporaryQueryDataFileService.java |   6 +-
 .../query/udf/service/UDFClassLoaderManager.java   |   6 +-
 .../query/udf/service/UDFRegistrationService.java  |   6 +-
 .../org/apache/iotdb/db/rescon/SystemInfo.java     |   2 +-
 .../iotdb/db/service/InfluxDBRPCService.java       |   9 +-
 .../java/org/apache/iotdb/db/service/IoTDB.java    |   9 +-
 .../org/apache/iotdb/db/service/MQTTService.java   |   2 +
 .../org/apache/iotdb/db/service/RPCService.java    |   9 +-
 .../apache/iotdb/db/service/RPCServiceMBean.java   |   2 +-
 .../org/apache/iotdb/db/service/SettleService.java |   6 +-
 .../org/apache/iotdb/db/service/StaticResps.java   |   6 +-
 .../org/apache/iotdb/db/service/UpgradeSevice.java |   4 +-
 .../db/service/basic/QueryFrequencyRecorder.java   |   2 +-
 .../iotdb/db/service/basic/ServiceProvider.java    |   2 +-
 .../iotdb/db/service/metrics/MetricsService.java   |  10 +-
 .../db/service/metrics/MetricsServiceMBean.java    |   2 +-
 .../db/service/thrift/impl/TSServiceImpl.java      |   4 +-
 .../iotdb/db/sync/conf/SyncSenderDescriptor.java   |   2 +-
 .../iotdb/db/sync/receiver/SyncServerManager.java  |  10 +-
 .../db/sync/receiver/SyncServerManagerMBean.java   |   2 +-
 .../db/sync/receiver/load/FileLoaderManager.java   |   4 +-
 .../db/sync/receiver/transfer/SyncServiceImpl.java |   2 +-
 .../db/sync/sender/manage/SyncFileManager.java     |   2 +-
 .../iotdb/db/sync/sender/transfer/SyncClient.java  |   4 +-
 .../org/apache/iotdb/db/tools/TsFileSplitTool.java |   2 +-
 .../java/org/apache/iotdb/db/utils/AuthUtils.java  |   2 +-
 .../org/apache/iotdb/db/utils/CommonUtils.java     |  57 ----------
 .../apache/iotdb/db/utils/ErrorHandlingUtils.java  |   2 +-
 .../java/org/apache/iotdb/db/utils/MemUtils.java   |   2 +-
 .../org/apache/iotdb/db/utils/OpenFileNumUtil.java |   2 +-
 .../org/apache/iotdb/db/utils/ThreadUtils.java     |   2 +-
 .../windowing/runtime/WindowEvaluationTask.java    |   2 +-
 .../runtime/WindowEvaluationTaskPoolManager.java   |   6 +-
 .../writelog/manager/MultiFileLogNodeManager.java  |   8 +-
 .../db/writelog/node/ExclusiveWriteLogNode.java    |   4 +-
 .../iotdb/db/writelog/recover/LogReplayer.java     |   2 +-
 .../apache/iotdb/db/conf/IoTDBDescriptorTest.java  |   2 +
 .../strategy/DirectoryStrategyTest.java            |  24 ++---
 .../iotdb/db/engine/cache/ChunkCacheTest.java      |   2 +-
 .../db/engine/compaction/CompactionUtilsTest.java  |   2 +-
 .../cross/CrossSpaceCompactionExceptionTest.java   |   2 +-
 .../db/engine/compaction/cross/MergeTest.java      |   2 +-
 .../engine/compaction/cross/MergeUpgradeTest.java  |   2 +-
 .../cross/RewriteCompactionFileSelectorTest.java   |   2 +-
 .../RewriteCrossSpaceCompactionRecoverTest.java    |   2 +-
 .../cross/RewriteCrossSpaceCompactionTest.java     |   4 +-
 .../inner/AbstractInnerSpaceCompactionTest.java    |   4 +-
 .../inner/InnerCompactionMoreDataTest.java         |   4 +-
 .../compaction/inner/InnerCompactionTest.java      |   4 +-
 .../inner/InnerSpaceCompactionUtilsOldTest.java    |   2 +-
 .../SizeTieredCompactionRecoverTest.java           |   2 +-
 .../inner/sizetiered/SizeTieredCompactionTest.java |   4 +-
 ...eCrossSpaceCompactionRecoverCompatibleTest.java |   2 +-
 .../recover/SizeTieredCompactionRecoverTest.java   |   2 +-
 .../compaction/utils/CompactionClearUtils.java     |   2 +-
 .../utils/CompactionFileGeneratorUtils.java        |   2 +-
 .../storagegroup/StorageGroupProcessorTest.java    |   2 +-
 .../iotdb/db/engine/storagegroup/TTLTest.java      |   2 +-
 .../db/engine/storagegroup/TsFileManagerTest.java  |   2 +-
 .../db/metadata/upgrade/MetadataUpgradeTest.java   |   2 +-
 .../iotdb/db/protocol/rest/IoTDBRestServiceIT.java |   2 +-
 .../java/org/apache/iotdb/db/qp/PlannerTest.java   |   2 +-
 .../query/reader/series/SeriesReaderTestUtil.java  |   2 +-
 .../iotdb/db/rescon/ResourceManagerTest.java       |   4 +-
 .../db/sync/receiver/load/FileLoaderTest.java      |   2 +-
 .../recover/SyncReceiverLogAnalyzerTest.java       |   2 +-
 .../db/sync/sender/manage/SyncFileManagerTest.java |   2 +-
 .../sender/recover/SyncSenderLogAnalyzerTest.java  |   4 +-
 .../sync/sender/recover/SyncSenderLoggerTest.java  |   2 +-
 .../db/sync/sender/transfer/SyncClientTest.java    |   2 +-
 .../apache/iotdb/db/tools/IoTDBWatermarkTest.java  |   2 +-
 .../iotdb/db/writelog/IoTDBLogFileSizeTest.java    |   2 +-
 .../recover/RecoverResourceFromReaderTest.java     |   2 +-
 .../writelog/recover/UnseqTsFileRecoverTest.java   |   2 +-
 server/src/test/resources/logback.xml              |   4 +-
 .../session/IoTDBSessionDisableMemControlIT.java   |   2 +-
 .../iotdb/session/IoTDBSessionVectorInsertIT.java  |   2 +-
 .../java/org/apache/iotdb/session/SessionTest.java |   2 +-
 .../apache/iotdb/session/pool/SessionPoolTest.java |   2 +-
 .../apache/iotdb/session/template/TemplateUT.java  |   2 +-
 .../apache/iotdb/spark/db/EnvironmentUtils.java    |   2 +-
 .../org/apache/iotdb/spark/db/IoTDBTest.scala      |   3 +-
 .../org/apache/iotdb/spark/db/IoTDBWriteTest.scala |   3 +-
 .../iotdb/spark/db/unit/DataFrameToolsTest.scala   |   4 +-
 .../zeppelin/iotdb/IoTDBInterpreterTest.java       |   2 +-
 304 files changed, 1049 insertions(+), 1071 deletions(-)

diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/ClientMain.java b/cluster/src/main/java/org/apache/iotdb/cluster/ClientMain.java
index e3a13db..689f6cc 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/ClientMain.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/ClientMain.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.cluster;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.jdbc.Config;
 import org.apache.iotdb.rpc.IoTDBConnectionException;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java
index d67f9e1..2206555 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java
@@ -56,20 +56,20 @@ import org.apache.iotdb.cluster.server.service.MetaAsyncService;
 import org.apache.iotdb.cluster.server.service.MetaSyncService;
 import org.apache.iotdb.cluster.utils.ClusterUtils;
 import org.apache.iotdb.cluster.utils.nodetool.ClusterMonitor;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.JMXService;
+import org.apache.iotdb.commons.service.RegisterManager;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBConfigCheck;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.ConfigurationException;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.service.IoTDB;
-import org.apache.iotdb.db.service.JMXService;
-import org.apache.iotdb.db.service.RegisterManager;
 import org.apache.iotdb.db.service.basic.ServiceProvider;
-import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
 
 import org.apache.thrift.TException;
 import org.apache.thrift.async.TAsyncClientManager;
@@ -100,14 +100,6 @@ public class ClusterIoTDB implements ClusterIoTDBMBean {
   // TODO: better to throw exception if the client can not be get. Then we can remove this field.
   private boolean printClientConnectionErrorStack = false;
 
-  // establish the cluster as a seed
-  private static final String MODE_START = "-s";
-  // join an established cluster
-  private static final String MODE_ADD = "-a";
-  // send a request to remove a node, more arguments: ip-of-removed-node
-  // metaport-of-removed-node
-  private static final String MODE_REMOVE = "-r";
-
   private MetaGroupMember metaGroupMember;
 
   private DataGroupEngine dataGroupEngine;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
index f02a386..f556998 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
@@ -20,7 +20,7 @@
 package org.apache.iotdb.cluster.config;
 
 import org.apache.iotdb.cluster.exception.BadSeedUrlFormatException;
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/coordinator/Coordinator.java b/cluster/src/main/java/org/apache/iotdb/cluster/coordinator/Coordinator.java
index 9a55222..db39cbf 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/coordinator/Coordinator.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/coordinator/Coordinator.java
@@ -38,8 +38,8 @@ import org.apache.iotdb.cluster.server.member.MetaGroupMember;
 import org.apache.iotdb.cluster.server.monitor.Timer;
 import org.apache.iotdb.cluster.utils.PartitionUtils;
 import org.apache.iotdb.cluster.utils.StatusUtils;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.exception.metadata.PathNotExistException;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/LogDispatcher.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/LogDispatcher.java
index 96c01a0..c9ebf31 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/LogDispatcher.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/LogDispatcher.java
@@ -30,9 +30,9 @@ import org.apache.iotdb.cluster.server.member.RaftMember;
 import org.apache.iotdb.cluster.server.monitor.Peer;
 import org.apache.iotdb.cluster.server.monitor.Timer;
 import org.apache.iotdb.cluster.utils.ClientUtils;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 
 import org.apache.thrift.TException;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/catchup/LogCatchUpTask.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/catchup/LogCatchUpTask.java
index f5f56ea..5cd2942 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/catchup/LogCatchUpTask.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/catchup/LogCatchUpTask.java
@@ -33,8 +33,8 @@ import org.apache.iotdb.cluster.server.handlers.caller.LogCatchUpHandler;
 import org.apache.iotdb.cluster.server.handlers.caller.LogCatchUpInBatchHandler;
 import org.apache.iotdb.cluster.server.member.RaftMember;
 import org.apache.iotdb.cluster.utils.ClientUtils;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 
 import org.apache.thrift.TException;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
index fd86c59..3a675af 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
@@ -32,8 +32,8 @@ import org.apache.iotdb.cluster.log.Snapshot;
 import org.apache.iotdb.cluster.log.StableEntryManager;
 import org.apache.iotdb.cluster.log.manage.serializable.LogManagerMeta;
 import org.apache.iotdb.cluster.server.monitor.Timer.Statistic;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.tsfile.utils.RamUsageEstimator;
 
 import org.slf4j.Logger;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializer.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializer.java
index 65329b4..cab9587 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializer.java
@@ -62,7 +62,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
 
 public class SyncLogDequeSerializer implements StableEntryManager {
 
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CSchemaEngine.java b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CSchemaEngine.java
index 86674c7..5f395bb 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CSchemaEngine.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/metadata/CSchemaEngine.java
@@ -39,7 +39,7 @@ import org.apache.iotdb.cluster.server.handlers.caller.ShowTimeSeriesHandler;
 import org.apache.iotdb.cluster.server.member.DataGroupMember;
 import org.apache.iotdb.cluster.server.member.MetaGroupMember;
 import org.apache.iotdb.cluster.utils.ClusterQueryUtils;
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.storagegroup.VirtualStorageGroupProcessor;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterPlanExecutor.java b/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterPlanExecutor.java
index f4944bf..109ee19 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterPlanExecutor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/query/ClusterPlanExecutor.java
@@ -34,8 +34,8 @@ import org.apache.iotdb.cluster.query.manage.QueryCoordinator;
 import org.apache.iotdb.cluster.rpc.thrift.Node;
 import org.apache.iotdb.cluster.server.member.DataGroupMember;
 import org.apache.iotdb.cluster.server.member.MetaGroupMember;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.storagegroup.VirtualStorageGroupProcessor.TimePartitionFilter;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutor.java b/cluster/src/main/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutor.java
index 047475a..ba22146 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/query/last/ClusterLastQueryExecutor.java
@@ -31,7 +31,7 @@ import org.apache.iotdb.cluster.rpc.thrift.LastQueryRequest;
 import org.apache.iotdb.cluster.rpc.thrift.Node;
 import org.apache.iotdb.cluster.server.member.DataGroupMember;
 import org.apache.iotdb.cluster.server.member.MetaGroupMember;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/ClusterRPCService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/ClusterRPCService.java
index f7c5e95..dfb957b 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/ClusterRPCService.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/ClusterRPCService.java
@@ -20,14 +20,14 @@
 package org.apache.iotdb.cluster.server;
 
 import org.apache.iotdb.cluster.config.ClusterDescriptor;
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.exception.runtime.RPCServiceException;
+import org.apache.iotdb.commons.service.ServiceType;
+import org.apache.iotdb.commons.service.ThriftService;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.runtime.RPCServiceException;
-import org.apache.iotdb.db.service.ServiceType;
 import org.apache.iotdb.db.service.thrift.ProcessorWithMetrics;
-import org.apache.iotdb.db.service.thrift.ThriftService;
-import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
 import org.apache.iotdb.db.service.thrift.handler.RPCServiceThriftHandler;
 import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
 import org.apache.iotdb.service.rpc.thrift.TSIService.Processor;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/ClusterRPCServiceMBean.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/ClusterRPCServiceMBean.java
index 3717bcd..694a822 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/ClusterRPCServiceMBean.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/ClusterRPCServiceMBean.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.cluster.server;
 
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.exception.StartupException;
 
 public interface ClusterRPCServiceMBean {
 
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/PullSnapshotHintService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/PullSnapshotHintService.java
index fa7861c..3cec37e 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/PullSnapshotHintService.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/PullSnapshotHintService.java
@@ -28,7 +28,7 @@ import org.apache.iotdb.cluster.partition.PartitionGroup;
 import org.apache.iotdb.cluster.rpc.thrift.Node;
 import org.apache.iotdb.cluster.rpc.thrift.RaftNode;
 import org.apache.iotdb.cluster.server.member.DataGroupMember;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
 
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/clusterinfo/ClusterInfoServer.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/clusterinfo/ClusterInfoServer.java
index 39619b6..d931274 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/clusterinfo/ClusterInfoServer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/clusterinfo/ClusterInfoServer.java
@@ -22,13 +22,13 @@ package org.apache.iotdb.cluster.server.clusterinfo;
 import org.apache.iotdb.cluster.config.ClusterConfig;
 import org.apache.iotdb.cluster.config.ClusterDescriptor;
 import org.apache.iotdb.cluster.rpc.thrift.ClusterInfoService.Processor;
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.exception.runtime.RPCServiceException;
+import org.apache.iotdb.commons.service.ServiceType;
+import org.apache.iotdb.commons.service.ThriftService;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.runtime.RPCServiceException;
-import org.apache.iotdb.db.service.ServiceType;
-import org.apache.iotdb.db.service.thrift.ThriftService;
-import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
 
 public class ClusterInfoServer extends ThriftService implements ClusterInfoServerMBean {
   private ClusterInfoServiceImpl serviceImpl;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
index b2775e5..ec305cd 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
@@ -71,9 +71,10 @@ import org.apache.iotdb.cluster.server.monitor.Timer;
 import org.apache.iotdb.cluster.server.monitor.Timer.Statistic;
 import org.apache.iotdb.cluster.utils.IOUtils;
 import org.apache.iotdb.cluster.utils.StatusUtils;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.service.JMXService;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.storagegroup.VirtualStorageGroupProcessor.TimePartitionFilter;
@@ -91,7 +92,6 @@ import org.apache.iotdb.db.qp.physical.crud.*;
 import org.apache.iotdb.db.qp.physical.sys.FlushPlan;
 import org.apache.iotdb.db.qp.physical.sys.LogPlan;
 import org.apache.iotdb.db.service.IoTDB;
-import org.apache.iotdb.db.service.JMXService;
 import org.apache.iotdb.rpc.TSStatusCode;
 import org.apache.iotdb.service.rpc.thrift.EndPoint;
 import org.apache.iotdb.service.rpc.thrift.TSStatus;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
index 1946128..6b80479 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
@@ -74,17 +74,17 @@ import org.apache.iotdb.cluster.utils.ClusterUtils;
 import org.apache.iotdb.cluster.utils.PartitionUtils;
 import org.apache.iotdb.cluster.utils.StatusUtils;
 import org.apache.iotdb.cluster.utils.nodetool.function.Status;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
-import org.apache.iotdb.db.service.IService;
 import org.apache.iotdb.db.service.IoTDB;
-import org.apache.iotdb.db.service.ServiceType;
 import org.apache.iotdb.db.utils.TimeValuePairUtils;
 import org.apache.iotdb.db.utils.TimeValuePairUtils.Intervals;
 import org.apache.iotdb.service.rpc.thrift.EndPoint;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
index c13720f..1e3bd05 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
@@ -65,13 +65,13 @@ import org.apache.iotdb.cluster.utils.ClientUtils;
 import org.apache.iotdb.cluster.utils.IOUtils;
 import org.apache.iotdb.cluster.utils.PlanSerializer;
 import org.apache.iotdb.cluster.utils.StatusUtils;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.IoTThreadFactory;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.IoTThreadFactory;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.BatchProcessException;
-import org.apache.iotdb.db.exception.IoTDBException;
 import org.apache.iotdb.db.exception.metadata.DuplicatedTemplateException;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.PathAlreadyExistException;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractRaftService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractRaftService.java
index 9788773..e5c1b7c 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractRaftService.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/AbstractRaftService.java
@@ -20,11 +20,11 @@
 package org.apache.iotdb.cluster.server.raft;
 
 import org.apache.iotdb.cluster.config.ClusterDescriptor;
+import org.apache.iotdb.commons.exception.runtime.RPCServiceException;
+import org.apache.iotdb.commons.service.ThriftService;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.runtime.RPCServiceException;
-import org.apache.iotdb.db.service.thrift.ThriftService;
-import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
 
 import org.apache.thrift.TBaseAsyncProcessor;
 
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatService.java
index d2a1b11..f9de563 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatService.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftHeartBeatService.java
@@ -21,10 +21,10 @@ package org.apache.iotdb.cluster.server.raft;
 
 import org.apache.iotdb.cluster.config.ClusterDescriptor;
 import org.apache.iotdb.cluster.utils.ClusterUtils;
-import org.apache.iotdb.db.concurrent.ThreadName;
-import org.apache.iotdb.db.service.ServiceType;
-import org.apache.iotdb.db.service.thrift.ThriftService;
-import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.service.ServiceType;
+import org.apache.iotdb.commons.service.ThriftService;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
 
 public class DataRaftHeartBeatService extends AbstractDataRaftService
     implements DataRaftHeartBeatServiceMBean {
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftService.java
index 37f1b28..b855ef8 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftService.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/DataRaftService.java
@@ -20,10 +20,10 @@
 package org.apache.iotdb.cluster.server.raft;
 
 import org.apache.iotdb.cluster.config.ClusterDescriptor;
-import org.apache.iotdb.db.concurrent.ThreadName;
-import org.apache.iotdb.db.service.ServiceType;
-import org.apache.iotdb.db.service.thrift.ThriftService;
-import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.service.ServiceType;
+import org.apache.iotdb.commons.service.ThriftService;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
 
 public class DataRaftService extends AbstractDataRaftService implements DataRaftServiceMBean {
 
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatService.java
index 6410189..85c1d5b 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatService.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftHeartBeatService.java
@@ -21,10 +21,10 @@ package org.apache.iotdb.cluster.server.raft;
 
 import org.apache.iotdb.cluster.config.ClusterDescriptor;
 import org.apache.iotdb.cluster.utils.ClusterUtils;
-import org.apache.iotdb.db.concurrent.ThreadName;
-import org.apache.iotdb.db.service.ServiceType;
-import org.apache.iotdb.db.service.thrift.ThriftService;
-import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.service.ServiceType;
+import org.apache.iotdb.commons.service.ThriftService;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
 
 public class MetaRaftHeartBeatService extends AbstractMetaRaftService
     implements MetaRaftHeartBeatServiceMBean {
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftService.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftService.java
index 6e73219..2793ca3 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftService.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/raft/MetaRaftService.java
@@ -20,10 +20,10 @@
 package org.apache.iotdb.cluster.server.raft;
 
 import org.apache.iotdb.cluster.config.ClusterDescriptor;
-import org.apache.iotdb.db.concurrent.ThreadName;
-import org.apache.iotdb.db.service.ServiceType;
-import org.apache.iotdb.db.service.thrift.ThriftService;
-import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.service.ServiceType;
+import org.apache.iotdb.commons.service.ThriftService;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
 
 public class MetaRaftService extends AbstractMetaRaftService implements MetaRaftServiceMBean {
 
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupEngine.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupEngine.java
index c8520a7..c52ca1b 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupEngine.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupEngine.java
@@ -39,10 +39,10 @@ import org.apache.iotdb.cluster.server.StoppedMemberManager;
 import org.apache.iotdb.cluster.server.member.DataGroupMember;
 import org.apache.iotdb.cluster.server.member.MetaGroupMember;
 import org.apache.iotdb.cluster.server.monitor.NodeReport.DataMemberReport;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.exception.StartupException;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.ServiceType;
 
 import org.apache.thrift.async.AsyncMethodCallback;
 import org.apache.thrift.protocol.TProtocolFactory;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/utils/PlanSerializer.java b/cluster/src/main/java/org/apache/iotdb/cluster/utils/PlanSerializer.java
index 78200f0..da5e7e5 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/utils/PlanSerializer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/utils/PlanSerializer.java
@@ -4,8 +4,8 @@
 
 package org.apache.iotdb.cluster.utils;
 
+import org.apache.iotdb.commons.utils.JVMCommonUtils;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
-import org.apache.iotdb.db.utils.CommonUtils;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -19,7 +19,7 @@ import java.util.concurrent.LinkedBlockingDeque;
 public class PlanSerializer {
 
   private static final Logger logger = LoggerFactory.getLogger(PlanSerializer.class);
-  private static final int DEFAULT_BAOS_SIZE = CommonUtils.getCpuCores() * 4;
+  private static final int DEFAULT_BAOS_SIZE = JVMCommonUtils.getCpuCores() * 4;
   private BlockingDeque<ByteArrayOutputStream> baosBlockingDeque = new LinkedBlockingDeque<>();
 
   private static final PlanSerializer instance = new PlanSerializer();
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/utils/nodetool/ClusterMonitor.java b/cluster/src/main/java/org/apache/iotdb/cluster/utils/nodetool/ClusterMonitor.java
index 18993df..086433d 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/utils/nodetool/ClusterMonitor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/utils/nodetool/ClusterMonitor.java
@@ -33,15 +33,15 @@ import org.apache.iotdb.cluster.server.member.MetaGroupMember;
 import org.apache.iotdb.cluster.server.monitor.Timer;
 import org.apache.iotdb.cluster.utils.ClientUtils;
 import org.apache.iotdb.cluster.utils.nodetool.function.NodeToolCmd;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
-import org.apache.iotdb.db.conf.IoTDBConstant;
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.JMXService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.JMXService;
-import org.apache.iotdb.db.service.ServiceType;
 import org.apache.iotdb.db.service.metrics.Metric;
 import org.apache.iotdb.db.service.metrics.MetricsService;
 import org.apache.iotdb.db.service.metrics.Tag;
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/common/IoTDBTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/common/IoTDBTest.java
index cc9fda4..6373275 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/common/IoTDBTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/common/IoTDBTest.java
@@ -20,9 +20,9 @@
 package org.apache.iotdb.cluster.common;
 
 import org.apache.iotdb.cluster.config.ClusterDescriptor;
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/integration/SingleNodeTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/integration/SingleNodeTest.java
index 3a72b5d..99083c3 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/integration/SingleNodeTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/integration/SingleNodeTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.cluster.integration;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.jdbc.Config;
 import org.apache.iotdb.rpc.IoTDBConnectionException;
 import org.apache.iotdb.rpc.StatementExecutionException;
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/log/LogDispatcherTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/log/LogDispatcherTest.java
index 7856f99..098d436 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/LogDispatcherTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/LogDispatcherTest.java
@@ -35,7 +35,7 @@ import org.apache.iotdb.cluster.rpc.thrift.RaftService.Client;
 import org.apache.iotdb.cluster.server.NodeCharacter;
 import org.apache.iotdb.cluster.server.Response;
 import org.apache.iotdb.cluster.server.member.RaftMember;
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/log/applier/DataLogApplierTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/log/applier/DataLogApplierTest.java
index 51690d1..63eab72 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/applier/DataLogApplierTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/applier/DataLogApplierTest.java
@@ -49,6 +49,8 @@ import org.apache.iotdb.cluster.server.member.RaftMember;
 import org.apache.iotdb.cluster.server.monitor.NodeStatusManager;
 import org.apache.iotdb.cluster.server.service.DataAsyncService;
 import org.apache.iotdb.cluster.server.service.MetaAsyncService;
+import org.apache.iotdb.commons.exception.IoTDBException;
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.storagegroup.VirtualStorageGroupProcessor;
@@ -155,9 +157,7 @@ public class DataLogApplierTest extends IoTDBTest {
 
   @Override
   @Before
-  public void setUp()
-      throws org.apache.iotdb.db.exception.StartupException, QueryProcessException,
-          IllegalPathException {
+  public void setUp() throws StartupException, QueryProcessException, IllegalPathException {
     IoTDB.setSchemaEngine(CSchemaEngine.getInstance());
     testMetaGroupMember.setCoordinator(new Coordinator());
     MetaPuller.getInstance().init(testMetaGroupMember);
@@ -406,7 +406,7 @@ public class DataLogApplierTest extends IoTDBTest {
   }
 
   @Test
-  public void testApplyCloseFile() throws org.apache.iotdb.db.exception.IoTDBException {
+  public void testApplyCloseFile() throws IoTDBException {
     VirtualStorageGroupProcessor virtualStorageGroupProcessor =
         StorageEngine.getInstance().getProcessor(new PartialPath(TestUtils.getTestSg(0)));
     TestCase.assertFalse(virtualStorageGroupProcessor.getWorkSequenceTsFileProcessors().isEmpty());
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/log/catchup/LogCatchUpTaskTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/log/catchup/LogCatchUpTaskTest.java
index 3fb5d30..4c2bd91 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/catchup/LogCatchUpTaskTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/catchup/LogCatchUpTaskTest.java
@@ -37,7 +37,7 @@ import org.apache.iotdb.cluster.rpc.thrift.RaftService.Client;
 import org.apache.iotdb.cluster.server.NodeCharacter;
 import org.apache.iotdb.cluster.server.Response;
 import org.apache.iotdb.cluster.server.member.RaftMember;
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/MetaSingleSnapshotLogManagerTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/MetaSingleSnapshotLogManagerTest.java
index 1b33fbd..e86833c 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/MetaSingleSnapshotLogManagerTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/MetaSingleSnapshotLogManagerTest.java
@@ -28,7 +28,7 @@ import org.apache.iotdb.cluster.log.snapshot.MetaSimpleSnapshot;
 import org.apache.iotdb.cluster.partition.slot.SlotPartitionTable;
 import org.apache.iotdb.cluster.rpc.thrift.Node;
 import org.apache.iotdb.cluster.server.member.MetaGroupMember;
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializerTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializerTest.java
index dd47d62..53e88de 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializerTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializerTest.java
@@ -36,7 +36,7 @@ import java.nio.ByteBuffer;
 import java.util.List;
 import java.util.Properties;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
 
 public class SyncLogDequeSerializerTest extends IoTDBTest {
 
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/DataSnapshotTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/DataSnapshotTest.java
index 7765132..26ddd20 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/DataSnapshotTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/DataSnapshotTest.java
@@ -34,7 +34,7 @@ import org.apache.iotdb.cluster.rpc.thrift.RaftService.Client;
 import org.apache.iotdb.cluster.server.member.DataGroupMember;
 import org.apache.iotdb.cluster.server.member.MetaGroupMember;
 import org.apache.iotdb.cluster.utils.IOUtils;
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
 import org.apache.iotdb.db.service.IoTDB;
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/MetaSimpleSnapshotTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/MetaSimpleSnapshotTest.java
index bbc749d..062c600 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/MetaSimpleSnapshotTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/MetaSimpleSnapshotTest.java
@@ -26,6 +26,7 @@ import org.apache.iotdb.cluster.exception.SnapshotInstallationException;
 import org.apache.iotdb.cluster.partition.PartitionTable;
 import org.apache.iotdb.cluster.server.member.MetaGroupMember;
 import org.apache.iotdb.cluster.utils.CreateTemplatePlanUtil;
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.authorizer.BasicAuthorizer;
 import org.apache.iotdb.db.auth.entity.Role;
@@ -66,8 +67,8 @@ public class MetaSimpleSnapshotTest extends IoTDBTest {
   @Override
   @Before
   public void setUp()
-      throws org.apache.iotdb.db.exception.StartupException,
-          org.apache.iotdb.db.exception.query.QueryProcessException, IllegalPathException {
+      throws StartupException, org.apache.iotdb.db.exception.query.QueryProcessException,
+          IllegalPathException {
     super.setUp();
     subServerInitialized = false;
     metaGroupMember =
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/PullSnapshotTaskTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/PullSnapshotTaskTest.java
index 421312d..c5afe2b 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/PullSnapshotTaskTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/snapshot/PullSnapshotTaskTest.java
@@ -34,11 +34,11 @@ import org.apache.iotdb.cluster.rpc.thrift.RaftService.AsyncClient;
 import org.apache.iotdb.cluster.rpc.thrift.RaftService.Client;
 import org.apache.iotdb.cluster.server.member.DataGroupMember;
 import org.apache.iotdb.cluster.utils.IOUtils;
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.engine.storagegroup.VirtualStorageGroupProcessor;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterUDTFQueryExecutorTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterUDTFQueryExecutorTest.java
index 9e6d2cc..5de21b2 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterUDTFQueryExecutorTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/query/ClusterUDTFQueryExecutorTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.cluster.query;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/BaseMember.java b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/BaseMember.java
index 93011b2..bc88217 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/BaseMember.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/BaseMember.java
@@ -50,13 +50,13 @@ import org.apache.iotdb.cluster.rpc.thrift.RaftService.AsyncClient;
 import org.apache.iotdb.cluster.rpc.thrift.TNodeStatus;
 import org.apache.iotdb.cluster.server.NodeCharacter;
 import org.apache.iotdb.cluster.server.Response;
+import org.apache.iotdb.commons.service.RegisterManager;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
 import org.apache.iotdb.db.qp.executor.PlanExecutor;
 import org.apache.iotdb.db.service.IoTDB;
-import org.apache.iotdb.db.service.RegisterManager;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.db.utils.SchemaUtils;
 import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
diff --git a/confignode/src/assembly/resources/conf/iotdb-confignode.properties b/confignode/src/assembly/resources/conf/iotdb-confignode.properties
index 023027c..f51a7d4 100644
--- a/confignode/src/assembly/resources/conf/iotdb-confignode.properties
+++ b/confignode/src/assembly/resources/conf/iotdb-confignode.properties
@@ -20,6 +20,22 @@
 ####################
 ### DeviceGroup Configuration
 ####################
+# could set ip or hostname
+# Datatype: String
+config_node_rpc_address=host0
+
+# used for communication between data node and config node
+# Datatype: int
+config_node_rpc_port=22277
+
+# used for communication between config node and config node
+# Datatype: int
+config_node_internal_port=22278
+
+# all config node address and internal port
+# every node should have the same config_node_address_lists
+# Datatype: String
+config_node_address_lists=host0:22278,host1:22278,host2:22278
 
 # Number of DeviceGroups per StorageGroup
 # Datatype: int
@@ -34,4 +50,27 @@
 # 4. org.apache.iotdb.commons.hash.SDBMHashExecutor
 # Also, if you want to implement your own hash algorithm, you can inherit the DeviceGroupHashExecutor class and
 # modify this parameter to correspond to your Java class
-# device_group_hash_executor_class=org.apache.iotdb.commons.hash.BKDRHashExecutor
\ No newline at end of file
+# device_group_hash_executor_class=org.apache.iotdb.commons.hash.BKDRHashExecutor
+
+
+####################
+### thrift rpc configuration
+####################
+# Datatype: boolean
+# rpc_thrift_compression_enable=false
+
+# if true, a snappy based compression method will be called before sending data by the network
+# Datatype: boolean
+# this feature is under development, set this as false before it is done.
+# rpc_advanced_compression_enable=false
+
+# Datatype: int
+# rpc_max_concurrent_client_num=65535
+
+# thrift max frame size, 512MB by default
+# Datatype: int
+# thrift_max_frame_size=536870912
+
+# thrift init buffer size
+# Datatype: int
+# thrift_init_buffer_size=1024
\ No newline at end of file
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConf.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConf.java
index 5c19156..5d17434 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConf.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConf.java
@@ -18,14 +18,46 @@
  */
 package org.apache.iotdb.confignode.conf;
 
+import org.apache.iotdb.rpc.RpcUtils;
+
 public class ConfigNodeConf {
 
-  // Number of DeviceGroups per StorageGroup
+  /** could set ip or hostname */
+  private String rpcAddress;
+
+  /** used for communication between data node and config node */
+  private int rpcPort;
+
+  /** used for communication between data node and data node */
+  private Long internalPort;
+
+  /** every node should have the same config_node_address_lists */
+  private String addressLists;
+
+  /** Number of DeviceGroups per StorageGroup */
   private int deviceGroupCount = 10000;
 
-  // DeviceGroup hash executor class
+  /** DeviceGroup hash executor class */
   private String deviceGroupHashExecutorClass = "org.apache.iotdb.commons.hash.BKDRHashExecutor";
 
+  /** Max concurrent client number */
+  private int rpcMaxConcurrentClientNum = 65535;
+
+  /** whether to use thrift compression. */
+  private boolean isRpcThriftCompressionEnabled = false;
+
+  /** whether to use Snappy compression before sending data through the network */
+  private boolean rpcAdvancedCompressionEnable = false;
+
+  /** max frame size */
+  private int thriftMaxFrameSize = 536870912;
+
+  /** buffer size */
+  private int thriftDefaultBufferSize = RpcUtils.THRIFT_DEFAULT_BUF_CAPACITY;
+
+  /** just for test wait for 60 second by default. */
+  private int thriftServerAwaitTimeForStopService = 60;
+
   public ConfigNodeConf() {
     // empty constructor
   }
@@ -45,4 +77,84 @@ public class ConfigNodeConf {
   public void setDeviceGroupHashExecutorClass(String deviceGroupHashExecutorClass) {
     this.deviceGroupHashExecutorClass = deviceGroupHashExecutorClass;
   }
+
+  public int getRpcMaxConcurrentClientNum() {
+    return rpcMaxConcurrentClientNum;
+  }
+
+  public void setRpcMaxConcurrentClientNum(int rpcMaxConcurrentClientNum) {
+    this.rpcMaxConcurrentClientNum = rpcMaxConcurrentClientNum;
+  }
+
+  public boolean isRpcThriftCompressionEnabled() {
+    return isRpcThriftCompressionEnabled;
+  }
+
+  public void setRpcThriftCompressionEnabled(boolean rpcThriftCompressionEnabled) {
+    isRpcThriftCompressionEnabled = rpcThriftCompressionEnabled;
+  }
+
+  public boolean isRpcAdvancedCompressionEnable() {
+    return rpcAdvancedCompressionEnable;
+  }
+
+  public void setRpcAdvancedCompressionEnable(boolean rpcAdvancedCompressionEnable) {
+    this.rpcAdvancedCompressionEnable = rpcAdvancedCompressionEnable;
+  }
+
+  public int getThriftMaxFrameSize() {
+    return thriftMaxFrameSize;
+  }
+
+  public void setThriftMaxFrameSize(int thriftMaxFrameSize) {
+    this.thriftMaxFrameSize = thriftMaxFrameSize;
+  }
+
+  public int getThriftDefaultBufferSize() {
+    return thriftDefaultBufferSize;
+  }
+
+  public void setThriftDefaultBufferSize(int thriftDefaultBufferSize) {
+    this.thriftDefaultBufferSize = thriftDefaultBufferSize;
+  }
+
+  public String getRpcAddress() {
+    return rpcAddress;
+  }
+
+  public void setRpcAddress(String rpcAddress) {
+    this.rpcAddress = rpcAddress;
+  }
+
+  public int getRpcPort() {
+    return rpcPort;
+  }
+
+  public void setRpcPort(int rpcPort) {
+    this.rpcPort = rpcPort;
+  }
+
+  public Long getInternalPort() {
+    return internalPort;
+  }
+
+  public void setInternalPort(Long internalPort) {
+    this.internalPort = internalPort;
+  }
+
+  public String getAddressLists() {
+    return addressLists;
+  }
+
+  public void setAddressLists(String addressLists) {
+    this.addressLists = addressLists;
+  }
+
+  public int getThriftServerAwaitTimeForStopService() {
+    return thriftServerAwaitTimeForStopService;
+  }
+
+  public void setThriftServerAwaitTimeForStopService(int thriftServerAwaitTimeForStopService) {
+    this.thriftServerAwaitTimeForStopService = thriftServerAwaitTimeForStopService;
+  }
 }
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
index be2b4aa..77dffdc 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
@@ -18,17 +18,20 @@
  */
 package org.apache.iotdb.confignode.service;
 
+import org.apache.iotdb.commons.exception.ShutdownException;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.JMXService;
+import org.apache.iotdb.commons.service.RegisterManager;
+import org.apache.iotdb.commons.service.StartupChecks;
+import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.confignode.conf.ConfigNodeConstant;
-import org.apache.iotdb.confignode.exception.startup.StartupException;
-import org.apache.iotdb.confignode.service.register.JMXService;
-import org.apache.iotdb.confignode.service.register.RegisterManager;
-import org.apache.iotdb.confignode.service.startup.StartupChecks;
+import org.apache.iotdb.confignode.service.thrift.server.ConfigNodeRPCServer;
+import org.apache.iotdb.confignode.service.thrift.server.ConfigNodeRPCServerProcessor;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class ConfigNode implements ConfigNodeMBean {
-
+public class ConfigNode {
   private static final Logger LOGGER = LoggerFactory.getLogger(ConfigNode.class);
 
   private final String mbeanName =
@@ -38,7 +41,7 @@ public class ConfigNode implements ConfigNodeMBean {
 
   private static final RegisterManager registerManager = new RegisterManager();
 
-  public ConfigNode() {
+  private ConfigNode() {
     // empty constructor
   }
 
@@ -51,9 +54,11 @@ public class ConfigNode implements ConfigNodeMBean {
     LOGGER.info("Setting up {}...", ConfigNodeConstant.GLOBAL_NAME);
     registerManager.register(JMXService.getInstance());
     JMXService.registerMBean(getInstance(), mbeanName);
-    LOGGER.info(
-        "Congratulation, {} is set up successfully. Now, enjoy yourself!",
-        ConfigNodeConstant.GLOBAL_NAME);
+
+    ConfigNodeRPCServerProcessor configNodeRPCServerProcessor = new ConfigNodeRPCServerProcessor();
+    ConfigNodeRPCServer.getInstance().initSyncedServiceImpl(configNodeRPCServerProcessor);
+    registerManager.register(ConfigNodeRPCServer.getInstance());
+    LOGGER.info("Init rpc server success");
   }
 
   public void active() {
@@ -70,9 +75,8 @@ public class ConfigNode implements ConfigNodeMBean {
     try {
       setUp();
     } catch (StartupException e) {
-      LOGGER.error("meet error while starting up.", e);
+      LOGGER.error("Meet error while starting up.", e);
       deactivate();
-      LOGGER.error("{} exit", ConfigNodeConstant.GLOBAL_NAME);
       return;
     }
 
@@ -86,7 +90,8 @@ public class ConfigNode implements ConfigNodeMBean {
     LOGGER.info("{} is deactivated.", ConfigNodeConstant.GLOBAL_NAME);
   }
 
-  public void shutdown() {
+  @TestOnly
+  public void shutdown() throws ShutdownException {
     LOGGER.info("Deactivating {}...", ConfigNodeConstant.GLOBAL_NAME);
     registerManager.shutdownAll();
     JMXService.deregisterMBean(mbeanName);
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNodeMBean.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNodeMBean.java
deleted file mode 100644
index 924b71a..0000000
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNodeMBean.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.confignode.service;
-
-@FunctionalInterface
-public interface ConfigNodeMBean {
-
-  void stop();
-}
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/register/IService.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/register/IService.java
deleted file mode 100644
index e2804d5..0000000
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/register/IService.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.confignode.service.register;
-
-import org.apache.iotdb.confignode.exception.startup.StartupException;
-
-/** Any services that run in ConfigNode should implement IService */
-public interface IService {
-
-  // TODO: Code optimize, reuse logic in iotdb-server
-
-  /** Start current service. */
-  void start() throws StartupException;
-
-  /**
-   * Stop current service. If current service uses thread or thread pool, current service should
-   * guarantee to putBack thread or thread pool.
-   */
-  void stop();
-
-  default void waitAndStop(long milliseconds) {
-    stop();
-  }
-
-  default void shutdown(long milliseconds) {
-    waitAndStop(milliseconds);
-  }
-
-  /**
-   * Get the name of the the service.
-   *
-   * @return current service name
-   */
-  ServiceType getID();
-}
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/register/JMXService.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/register/JMXService.java
deleted file mode 100644
index aca2a33..0000000
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/register/JMXService.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.confignode.service.register;
-
-import org.apache.iotdb.confignode.conf.ConfigNodeConstant;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.MBeanRegistrationException;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.NotCompliantMBeanException;
-import javax.management.ObjectName;
-
-import java.lang.management.ManagementFactory;
-
-public class JMXService implements IService {
-
-  // TODO: Code optimize, reuse logic in iotdb-server
-
-  private static final Logger LOGGER = LoggerFactory.getLogger(JMXService.class);
-
-  /** function for registering MBean. */
-  public static void registerMBean(Object mbean, String name) {
-    try {
-      MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
-      ObjectName objectName = new ObjectName(name);
-      if (!mbs.isRegistered(objectName)) {
-        mbs.registerMBean(mbean, objectName);
-      }
-    } catch (MalformedObjectNameException
-        | InstanceAlreadyExistsException
-        | MBeanRegistrationException
-        | NotCompliantMBeanException e) {
-      LOGGER.error("Failed to registerMBean {}", name, e);
-    }
-  }
-
-  /** function for deregistering MBean. */
-  public static void deregisterMBean(String name) {
-    try {
-      MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
-      ObjectName objectName = new ObjectName(name);
-      if (mbs.isRegistered(objectName)) {
-        mbs.unregisterMBean(objectName);
-      }
-    } catch (MalformedObjectNameException
-        | MBeanRegistrationException
-        | InstanceNotFoundException e) {
-      LOGGER.error("Failed to unregisterMBean {}", name, e);
-    }
-  }
-
-  @Override
-  public ServiceType getID() {
-    return ServiceType.JMX_SERVICE;
-  }
-
-  @Override
-  public void start() {
-    String jmxPort = System.getProperty(ConfigNodeConstant.CONFIGNODE_JMX_PORT);
-    if (jmxPort == null) {
-      LOGGER.debug("{} JMX port is undefined", this.getID().getName());
-    }
-  }
-
-  @Override
-  public void stop() {
-    // do nothing.
-  }
-
-  private JMXService() {
-    // empty constructor
-  }
-
-  public static JMXService getInstance() {
-    return JMXServerHolder.INSTANCE;
-  }
-
-  private static class JMXServerHolder {
-
-    private static final JMXService INSTANCE = new JMXService();
-
-    private JMXServerHolder() {}
-  }
-}
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/register/RegisterManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/register/RegisterManager.java
deleted file mode 100644
index 1b2c736..0000000
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/register/RegisterManager.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.confignode.service.register;
-
-import org.apache.iotdb.confignode.exception.startup.StartupException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/** Manager any services that run in ConfigNode */
-public class RegisterManager {
-
-  // TODO: Code optimize, reuse logic in iotdb-server
-
-  private static final Logger LOGGER = LoggerFactory.getLogger(RegisterManager.class);
-
-  private final List<IService> iServices;
-  private static final long deregisterTimeOut = 10_000L;
-
-  public RegisterManager() {
-    iServices = new ArrayList<>();
-  }
-
-  /** register service. */
-  public void register(IService service) throws StartupException {
-    for (IService s : iServices) {
-      if (s.getID() == service.getID()) {
-        LOGGER.debug("{} has already been registered. skip", service.getID().getName());
-        return;
-      }
-    }
-    iServices.add(service);
-    service.start();
-  }
-
-  /** stop all service and clear iService list. */
-  public void deregisterAll() {
-    // we stop JMXServer at last
-    Collections.reverse(iServices);
-    for (IService service : iServices) {
-      try {
-        service.waitAndStop(deregisterTimeOut);
-        LOGGER.debug("{} deregistered", service.getID());
-      } catch (Exception e) {
-        LOGGER.error("Failed to stop {} because:", service.getID().getName(), e);
-      }
-    }
-    iServices.clear();
-    LOGGER.info("deregister all service.");
-  }
-
-  /** stop all service and clear iService list. */
-  public void shutdownAll() {
-    // we stop JMXServer at last
-    Collections.reverse(iServices);
-    for (IService service : iServices) {
-      service.shutdown(deregisterTimeOut);
-    }
-    iServices.clear();
-    LOGGER.info("deregister all service.");
-  }
-}
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/register/ServiceType.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/register/ServiceType.java
deleted file mode 100644
index 114ab1c..0000000
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/register/ServiceType.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.confignode.service.register;
-
-public enum ServiceType {
-  JMX_SERVICE("JMX ServerService", "JMX ServerService"),
-  CLUSTER_RPC_SERVER("Cluster RPC Server", "ClusterRPCServer");
-
-  private final String name;
-  private final String jmxName;
-
-  ServiceType(String name, String jmxName) {
-    this.name = name;
-    this.jmxName = jmxName;
-  }
-
-  public String getName() {
-    return name;
-  }
-
-  public String getJmxName() {
-    return jmxName;
-  }
-
-  private static String generateJmxName(String packageName, String jmxName) {
-    return String.format("%s:type=%s", packageName, jmxName);
-  }
-}
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/startup/StartupCheck.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/startup/StartupCheck.java
deleted file mode 100644
index d3128a7..0000000
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/startup/StartupCheck.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.confignode.service.startup;
-
-import org.apache.iotdb.confignode.exception.startup.StartupException;
-
-@FunctionalInterface
-public interface StartupCheck {
-
-  /** Run some tests to check whether ConfigNode is safe to be started. */
-  void execute() throws StartupException;
-}
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/startup/StartupChecks.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/startup/StartupChecks.java
deleted file mode 100644
index 58d9b67..0000000
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/startup/StartupChecks.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.confignode.service.startup;
-
-import org.apache.iotdb.confignode.conf.ConfigNodeConstant;
-import org.apache.iotdb.confignode.exception.startup.StartupException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/** StartupChecks checks the startup environment for running ConfigNode */
-public class StartupChecks {
-
-  // TODO: Code optimize, reuse logic in iotdb-server
-
-  private static final Logger LOGGER = LoggerFactory.getLogger(StartupChecks.class);
-  public static final StartupCheck checkJMXPort =
-      () -> {
-        String jmxPort = System.getProperty(ConfigNodeConstant.CONFIGNODE_JMX_PORT);
-        if (jmxPort == null) {
-          LOGGER.warn(
-              "{} missing from {}.sh(Unix or OS X, if you use Windows," + " check conf/{}.bat)",
-              ConfigNodeConstant.CONFIGNODE_JMX_PORT,
-              ConfigNodeConstant.ENV_FILE_NAME,
-              ConfigNodeConstant.ENV_FILE_NAME);
-        } else {
-          LOGGER.info("JMX is enabled to receive remote connection on port {}", jmxPort);
-        }
-      };
-  public static final StartupCheck checkJDK =
-      () -> {
-        int version = getJdkVersion();
-        if (version < ConfigNodeConstant.MIN_SUPPORTED_JDK_VERSION) {
-          throw new StartupException(
-              String.format(
-                  "Requires JDK version >= %d, current version is %d",
-                  ConfigNodeConstant.MIN_SUPPORTED_JDK_VERSION, version));
-        } else {
-          LOGGER.info("JDK version is {}.", version);
-        }
-      };
-  private final List<StartupCheck> preChecks = new ArrayList<>();
-  private final List<StartupCheck> defaultChecks = new ArrayList<>();
-
-  public StartupChecks() {
-    defaultChecks.add(checkJMXPort);
-    defaultChecks.add(checkJDK);
-  }
-
-  public StartupChecks withDefaultTest() {
-    preChecks.addAll(defaultChecks);
-    return this;
-  }
-
-  /** execute every pretests. */
-  public void verify() throws StartupException {
-    for (StartupCheck check : preChecks) {
-      check.execute();
-    }
-  }
-
-  private static int getJdkVersion() {
-    String[] javaVersionElements = System.getProperty("java.version").split("\\.");
-    if (Integer.parseInt(javaVersionElements[0]) == 1) {
-      return Integer.parseInt(javaVersionElements[1]);
-    } else {
-      return Integer.parseInt(javaVersionElements[0]);
-    }
-  }
-}
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServer.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServer.java
index f922320..19180bc 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServer.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServer.java
@@ -18,46 +18,88 @@
  */
 package org.apache.iotdb.confignode.service.thrift.server;
 
-import org.apache.iotdb.confignode.manager.ConfigManager;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.exception.runtime.RPCServiceException;
+import org.apache.iotdb.commons.service.ServiceType;
+import org.apache.iotdb.commons.service.ThriftService;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
+import org.apache.iotdb.confignode.conf.ConfigNodeConf;
+import org.apache.iotdb.confignode.conf.ConfigNodeDescriptor;
 import org.apache.iotdb.confignode.rpc.thrift.ConfigIService;
-import org.apache.iotdb.confignode.rpc.thrift.DataPartitionInfo;
-import org.apache.iotdb.confignode.rpc.thrift.DeleteStorageGroupReq;
-import org.apache.iotdb.confignode.rpc.thrift.GetDataPartitionReq;
-import org.apache.iotdb.confignode.rpc.thrift.GetSchemaPartitionReq;
-import org.apache.iotdb.confignode.rpc.thrift.SchemaPartitionInfo;
-import org.apache.iotdb.confignode.rpc.thrift.SetStorageGroupoReq;
-import org.apache.iotdb.service.rpc.thrift.TSStatus;
-
-import org.apache.thrift.TException;
 
 /** ConfigNodeRPCServer exposes the interface that interacts with the DataNode */
-public class ConfigNodeRPCServer implements ConfigIService.Iface {
+public class ConfigNodeRPCServer extends ThriftService {
+
+  private ConfigNodeConf config = ConfigNodeDescriptor.getInstance().getConf();
+
+  private ConfigNodeRPCServerProcessor configNodeRPCServerProcessor;
 
-  private ConfigManager configManager;
+  private ConfigNodeRPCServer() {}
 
-  public ConfigNodeRPCServer() {
-    this.configManager = new ConfigManager();
+  @Override
+  public ThriftService getImplementation() {
+    return ConfigNodeRPCServer.getInstance();
   }
 
   @Override
-  public TSStatus setStorageGroup(SetStorageGroupoReq req) throws TException {
-    return null;
+  public ServiceType getID() {
+    return ServiceType.CONFIG_NODE_SERVICE;
   }
 
   @Override
-  public TSStatus deleteStorageGroup(DeleteStorageGroupReq req) throws TException {
-    return null;
+  public void initSyncedServiceImpl(Object configNodeRPCServerProcessor) {
+    this.configNodeRPCServerProcessor = (ConfigNodeRPCServerProcessor) configNodeRPCServerProcessor;
+    super.initSyncedServiceImpl(this.configNodeRPCServerProcessor);
   }
 
   @Override
-  public SchemaPartitionInfo getSchemaPartition(GetSchemaPartitionReq req) throws TException {
-    return null;
+  public void initTProcessor() throws InstantiationException {
+    if (processor == null) {
+      throw new InstantiationException("ConfigNodeRPCServerProcessor is null");
+    }
+
+    processor = new ConfigIService.Processor<>(configNodeRPCServerProcessor);
+  }
+
+  @Override
+  public void initThriftServiceThread() throws IllegalAccessException {
+
+    try {
+      thriftServiceThread =
+          new ThriftServiceThread(
+              processor,
+              getID().getName(),
+              ThreadName.CLUSTER_RPC_CLIENT.getName(),
+              getBindIP(),
+              getBindPort(),
+              config.getRpcMaxConcurrentClientNum(),
+              config.getThriftServerAwaitTimeForStopService(),
+              new ConfigNodeRPCServiceHandler(configNodeRPCServerProcessor),
+              config.isRpcThriftCompressionEnabled());
+    } catch (RPCServiceException e) {
+      throw new IllegalAccessException(e.getMessage());
+    }
+    thriftServiceThread.setName(ThreadName.CLUSTER_RPC_SERVICE.getName());
   }
 
   @Override
-  public DataPartitionInfo getDataPartition(GetDataPartitionReq req) throws TException {
-    return null;
+  public String getBindIP() {
+    return config.getRpcAddress();
   }
 
-  // TODO: Interfaces for data operations
+  @Override
+  public int getBindPort() {
+    return config.getRpcPort();
+  }
+
+  public static ConfigNodeRPCServer getInstance() {
+    return ConfigNodeRPCServerHolder.INSTANCE;
+  }
+
+  private static class ConfigNodeRPCServerHolder {
+
+    private static final ConfigNodeRPCServer INSTANCE = new ConfigNodeRPCServer();
+
+    private ConfigNodeRPCServerHolder() {}
+  }
 }
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServer.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServerProcessor.java
similarity index 93%
copy from confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServer.java
copy to confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServerProcessor.java
index f922320..0589dc9 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServer.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServerProcessor.java
@@ -31,11 +31,11 @@ import org.apache.iotdb.service.rpc.thrift.TSStatus;
 import org.apache.thrift.TException;
 
 /** ConfigNodeRPCServer exposes the interface that interacts with the DataNode */
-public class ConfigNodeRPCServer implements ConfigIService.Iface {
+public class ConfigNodeRPCServerProcessor implements ConfigIService.Iface {
 
   private ConfigManager configManager;
 
-  public ConfigNodeRPCServer() {
+  public ConfigNodeRPCServerProcessor() {
     this.configManager = new ConfigManager();
   }
 
@@ -59,5 +59,7 @@ public class ConfigNodeRPCServer implements ConfigIService.Iface {
     return null;
   }
 
+  public void handleClientExit() {}
+
   // TODO: Interfaces for data operations
 }
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServiceHandler.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServiceHandler.java
new file mode 100644
index 0000000..a186a12
--- /dev/null
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/server/ConfigNodeRPCServiceHandler.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * <p>http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * <p>Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.iotdb.confignode.service.thrift.server;
+
+import org.apache.thrift.protocol.TProtocol;
+import org.apache.thrift.server.ServerContext;
+import org.apache.thrift.server.TServerEventHandler;
+import org.apache.thrift.transport.TTransport;
+
+public class ConfigNodeRPCServiceHandler implements TServerEventHandler {
+  private ConfigNodeRPCServerProcessor processor;
+
+  public ConfigNodeRPCServiceHandler(ConfigNodeRPCServerProcessor processor) {
+    this.processor = processor;
+  }
+
+  @Override
+  public ServerContext createContext(TProtocol arg0, TProtocol arg1) {
+    // nothing
+    return null;
+  }
+
+  @Override
+  public void deleteContext(ServerContext arg0, TProtocol arg1, TProtocol arg2) {
+    // release query resources.
+    processor.handleClientExit();
+  }
+
+  @Override
+  public void preServe() {
+    // nothing
+  }
+
+  @Override
+  public void processContext(ServerContext arg0, TTransport arg1, TTransport arg2) {
+    // nothing
+  }
+}
diff --git a/confignode/src/test/java/org/apache/iotdb/confignode/utils/ConfigNodeEnvironmentUtils.java b/confignode/src/test/java/org/apache/iotdb/confignode/utils/ConfigNodeEnvironmentUtils.java
index 39252f7..cd775c8 100644
--- a/confignode/src/test/java/org/apache/iotdb/confignode/utils/ConfigNodeEnvironmentUtils.java
+++ b/confignode/src/test/java/org/apache/iotdb/confignode/utils/ConfigNodeEnvironmentUtils.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.confignode.utils;
 
+import org.apache.iotdb.commons.exception.ShutdownException;
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.confignode.conf.ConfigNodeConstant;
 import org.apache.iotdb.confignode.service.ConfigNode;
@@ -43,7 +44,7 @@ public class ConfigNodeEnvironmentUtils {
     LOGGER.debug("ConfigNodeEnvironmentUtils setup...");
 
     if (daemon == null) {
-      daemon = new ConfigNode();
+      daemon = ConfigNode.getInstance();
     }
 
     try {
@@ -76,7 +77,7 @@ public class ConfigNodeEnvironmentUtils {
   }
 
   @TestOnly
-  public static void shutdownDaemon() {
+  public static void shutdownDaemon() throws ShutdownException {
     if (daemon != null) {
       daemon.shutdown();
     }
@@ -92,7 +93,7 @@ public class ConfigNodeEnvironmentUtils {
   @TestOnly
   public static void reactiveDaemon() {
     if (daemon == null) {
-      daemon = new ConfigNode();
+      daemon = ConfigNode.getInstance();
       daemon.active();
     } else {
       activeDaemon();
@@ -100,7 +101,7 @@ public class ConfigNodeEnvironmentUtils {
   }
 
   @TestOnly
-  public static void restartDaemon() {
+  public static void restartDaemon() throws ShutdownException {
     shutdownDaemon();
     stopDaemon();
     reactiveDaemon();
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBDaemonIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBDaemonIT.java
index 200114b..b65a5cb 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBDaemonIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBDaemonIT.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.integration;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.integration.env.EnvFactory;
 import org.apache.iotdb.itbase.category.ClusterTest;
 import org.apache.iotdb.itbase.category.LocalStandaloneTest;
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBLargeDataIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBLargeDataIT.java
index 2a0a4cd..a1ad679 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBLargeDataIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBLargeDataIT.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.integration;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.integration.env.ConfigFactory;
 import org.apache.iotdb.integration.env.EnvFactory;
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java
index ca744cf..74c6fb8 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBMetadataFetchIT.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.integration;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.integration.env.EnvFactory;
 import org.apache.iotdb.itbase.category.ClusterTest;
 import org.apache.iotdb.itbase.category.LocalStandaloneTest;
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java
index 44fb3f7..1e2d5f2 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBMultiSeriesIT.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.integration;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.integration.env.ConfigFactory;
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBRecoverUnclosedIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBRecoverUnclosedIT.java
index a70278b..86730b0 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBRecoverUnclosedIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBRecoverUnclosedIT.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.integration;
 
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.itbase.category.LocalStandaloneTest;
 import org.apache.iotdb.jdbc.Config;
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBUDFManagementIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBUDFManagementIT.java
index eac8161..2eb36b6 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBUDFManagementIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBUDFManagementIT.java
@@ -43,9 +43,9 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.FUNCTION_TYPE_BUILTIN_UDTF;
-import static org.apache.iotdb.db.conf.IoTDBConstant.FUNCTION_TYPE_EXTERNAL_UDTF;
-import static org.apache.iotdb.db.conf.IoTDBConstant.FUNCTION_TYPE_NATIVE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FUNCTION_TYPE_BUILTIN_UDTF;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FUNCTION_TYPE_EXTERNAL_UDTF;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FUNCTION_TYPE_NATIVE;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
diff --git a/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionComplexIT.java b/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionComplexIT.java
index ea3885f..746bd52 100644
--- a/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionComplexIT.java
+++ b/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionComplexIT.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.session;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.trigger.example.Counter;
 import org.apache.iotdb.db.engine.trigger.service.TriggerRegistrationService;
diff --git a/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionIteratorIT.java b/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionIteratorIT.java
index 1e0221e..0a25fe8 100644
--- a/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionIteratorIT.java
+++ b/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionIteratorIT.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.session;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.itbase.category.LocalStandaloneTest;
 import org.apache.iotdb.rpc.IoTDBConnectionException;
diff --git a/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java b/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
index ee5712d..e82f7f6 100644
--- a/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
+++ b/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionSimpleIT.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.session;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.OperationType;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
diff --git a/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionSyntaxConventionIT.java b/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionSyntaxConventionIT.java
index 53ed5ee..c67f85a 100644
--- a/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionSyntaxConventionIT.java
+++ b/integration/src/test/java/org/apache/iotdb/session/IoTDBSessionSyntaxConventionIT.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.session;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.itbase.category.LocalStandaloneTest;
 import org.apache.iotdb.rpc.IoTDBConnectionException;
diff --git a/integration/src/test/resources/logback.xml b/integration/src/test/resources/logback.xml
index f7972b4..896ecd7 100644
--- a/integration/src/test/resources/logback.xml
+++ b/integration/src/test/resources/logback.xml
@@ -41,12 +41,12 @@
     <logger name="FileMonitor" level="info"/>
     -->
     <logger name="org.apache.iotdb.db.engine.merge" level="INFO"/>
-    <logger name="org.apache.iotdb.db.service.thrift.ThriftServiceThread" level="INFO"/>
+    <logger name="org.apache.iotdb.commons.service.ThriftServiceThread" level="INFO"/>
     <logger name="org.eclipse.jetty.util.thread.QueuedThreadPool" level="INFO"/>
     <logger name="org.apache.iotdb.db.service.metrics.MetricsService" level="INFO"/>
     <logger name="org.apache.iotdb.db.engine.flush.FlushManager" level="INFO"/>
     <logger name="org.apache.iotdb.db.integration.IoTDBCompactionIT" level="INFO"/>
-    <logger name="org.apache.iotdb.db.service.RegisterManager" level="INFO"/>
+    <logger name="org.apache.iotdb.commons.service.RegisterManager" level="INFO"/>
     <logger name="org.apache.iotdb.db.service.IoTDB" level="WARN"/>
     <logger name="org.apache.iotdb.db.service.RPCService" level="INFO"/>
     <logger name="org.apache.iotdb.db.service.MQTTService" level="INFO"/>
diff --git a/iotdb-commons/pom.xml b/node-commons/pom.xml
similarity index 90%
rename from iotdb-commons/pom.xml
rename to node-commons/pom.xml
index 30be568..f84341d 100644
--- a/iotdb-commons/pom.xml
+++ b/node-commons/pom.xml
@@ -28,12 +28,30 @@
         <relativePath>../pom.xml</relativePath>
     </parent>
     <artifactId>iotdb-commons</artifactId>
-    <name>IoTDB commons</name>
+    <name>Node Commons</name>
+    <description>Common modules of the server and config node</description>
     <properties>
         <commons.test.skip>false</commons.test.skip>
         <commons.it.skip>${commons.test.skip}</commons.it.skip>
         <commons.ut.skip>${commons.test.skip}</commons.ut.skip>
     </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.thrift</groupId>
+            <artifactId>libthrift</artifactId>
+            <version>${thrift.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.iotdb</groupId>
+            <artifactId>service-rpc</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>[${guava.version},)</version>
+        </dependency>
+    </dependencies>
     <build>
         <plugins>
             <!--
diff --git a/iotdb-commons/src/main/java/org/apache/iotdb/commons/ServerCommandLine.java b/node-commons/src/main/java/org/apache/iotdb/commons/ServerCommandLine.java
similarity index 100%
rename from iotdb-commons/src/main/java/org/apache/iotdb/commons/ServerCommandLine.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/ServerCommandLine.java
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/HashLock.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/HashLock.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/HashLock.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/HashLock.java
index 2f53330..a796535 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/HashLock.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/HashLock.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.concurrent;
+package org.apache.iotdb.commons.concurrent;
 
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/IoTDBDaemonThreadFactory.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTDBDaemonThreadFactory.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/IoTDBDaemonThreadFactory.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTDBDaemonThreadFactory.java
index a957cfb..af198f3 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/IoTDBDaemonThreadFactory.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTDBDaemonThreadFactory.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.concurrent;
+package org.apache.iotdb.commons.concurrent;
 
 public class IoTDBDaemonThreadFactory extends IoTThreadFactory {
   public IoTDBDaemonThreadFactory(String poolName) {
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/IoTDBDefaultThreadExceptionHandler.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTDBDefaultThreadExceptionHandler.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/IoTDBDefaultThreadExceptionHandler.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTDBDefaultThreadExceptionHandler.java
index 07f92f7..10bd1f2 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/IoTDBDefaultThreadExceptionHandler.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTDBDefaultThreadExceptionHandler.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.concurrent;
+package org.apache.iotdb.commons.concurrent;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/IoTDBThreadPoolFactory.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTDBThreadPoolFactory.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/IoTDBThreadPoolFactory.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTDBThreadPoolFactory.java
index 1c557bf..983afff 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/IoTDBThreadPoolFactory.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTDBThreadPoolFactory.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.concurrent;
+package org.apache.iotdb.commons.concurrent;
 
-import org.apache.iotdb.db.concurrent.threadpool.WrappedScheduledExecutorService;
-import org.apache.iotdb.db.concurrent.threadpool.WrappedSingleThreadExecutorService;
-import org.apache.iotdb.db.concurrent.threadpool.WrappedSingleThreadScheduledExecutor;
-import org.apache.iotdb.db.concurrent.threadpool.WrappedThreadPoolExecutor;
+import org.apache.iotdb.commons.concurrent.threadpool.WrappedScheduledExecutorService;
+import org.apache.iotdb.commons.concurrent.threadpool.WrappedSingleThreadExecutorService;
+import org.apache.iotdb.commons.concurrent.threadpool.WrappedSingleThreadScheduledExecutor;
+import org.apache.iotdb.commons.concurrent.threadpool.WrappedThreadPoolExecutor;
 
 import org.apache.thrift.server.TThreadPoolServer;
 import org.slf4j.Logger;
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/IoTThreadFactory.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTThreadFactory.java
similarity index 98%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/IoTThreadFactory.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTThreadFactory.java
index d2bce7e..241b729 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/IoTThreadFactory.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/IoTThreadFactory.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.concurrent;
+package org.apache.iotdb.commons.concurrent;
 
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.atomic.AtomicInteger;
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/ThreadName.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/ThreadName.java
similarity index 98%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/ThreadName.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/ThreadName.java
index 18ab028..c12faea 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/ThreadName.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/ThreadName.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.concurrent;
+package org.apache.iotdb.commons.concurrent;
 
 public enum ThreadName {
   METRICS_SERVICE("Metrics-ServerServiceImpl"),
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/WrappedRunnable.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/WrappedRunnable.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/WrappedRunnable.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/WrappedRunnable.java
index 268cc8e..738c31b 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/WrappedRunnable.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/WrappedRunnable.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.concurrent;
+package org.apache.iotdb.commons.concurrent;
 
 import com.google.common.base.Throwables;
 import org.slf4j.Logger;
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/IThreadPoolMBean.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/IThreadPoolMBean.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/IThreadPoolMBean.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/IThreadPoolMBean.java
index 1b13c7b..c23dc50 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/IThreadPoolMBean.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/IThreadPoolMBean.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.concurrent.threadpool;
+package org.apache.iotdb.commons.concurrent.threadpool;
 
 import java.util.Queue;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedScheduledExecutorService.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedScheduledExecutorService.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedScheduledExecutorService.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedScheduledExecutorService.java
index fa7c94e..74c15e4 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedScheduledExecutorService.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedScheduledExecutorService.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.concurrent.threadpool;
+package org.apache.iotdb.commons.concurrent.threadpool;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
-import org.apache.iotdb.db.service.JMXService;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.service.JMXService;
 
 import java.util.Collection;
 import java.util.List;
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedScheduledExecutorServiceMBean.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedScheduledExecutorServiceMBean.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedScheduledExecutorServiceMBean.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedScheduledExecutorServiceMBean.java
index 080bfc8..b9391ca 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedScheduledExecutorServiceMBean.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedScheduledExecutorServiceMBean.java
@@ -17,6 +17,6 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.concurrent.threadpool;
+package org.apache.iotdb.commons.concurrent.threadpool;
 
 public interface WrappedScheduledExecutorServiceMBean extends IThreadPoolMBean {}
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadExecutorService.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadExecutorService.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadExecutorService.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadExecutorService.java
index 96c990b..9035c4b 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadExecutorService.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadExecutorService.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.concurrent.threadpool;
+package org.apache.iotdb.commons.concurrent.threadpool;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
-import org.apache.iotdb.db.service.JMXService;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.service.JMXService;
 
 import java.util.Collection;
 import java.util.List;
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadExecutorServiceMBean.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadExecutorServiceMBean.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadExecutorServiceMBean.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadExecutorServiceMBean.java
index 256d6f8..745ab06 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadExecutorServiceMBean.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadExecutorServiceMBean.java
@@ -17,6 +17,6 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.concurrent.threadpool;
+package org.apache.iotdb.commons.concurrent.threadpool;
 
 public interface WrappedSingleThreadExecutorServiceMBean {}
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadScheduledExecutor.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadScheduledExecutor.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadScheduledExecutor.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadScheduledExecutor.java
index e6949ef..8410eeb 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadScheduledExecutor.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadScheduledExecutor.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.concurrent.threadpool;
+package org.apache.iotdb.commons.concurrent.threadpool;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
-import org.apache.iotdb.db.service.JMXService;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.service.JMXService;
 
 import java.util.Collection;
 import java.util.List;
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadScheduledExecutorMBean.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadScheduledExecutorMBean.java
similarity index 93%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadScheduledExecutorMBean.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadScheduledExecutorMBean.java
index d5d276b..d40747d 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedSingleThreadScheduledExecutorMBean.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedSingleThreadScheduledExecutorMBean.java
@@ -17,6 +17,6 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.concurrent.threadpool;
+package org.apache.iotdb.commons.concurrent.threadpool;
 
 public interface WrappedSingleThreadScheduledExecutorMBean {}
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedThreadPoolExecutor.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedThreadPoolExecutor.java
similarity index 91%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedThreadPoolExecutor.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedThreadPoolExecutor.java
index cabb2e1..834f5d5 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedThreadPoolExecutor.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedThreadPoolExecutor.java
@@ -17,11 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.concurrent.threadpool;
+package org.apache.iotdb.commons.concurrent.threadpool;
 
-import org.apache.iotdb.db.concurrent.IoTThreadFactory;
-import org.apache.iotdb.db.conf.IoTDBConstant;
-import org.apache.iotdb.db.service.JMXService;
+import org.apache.iotdb.commons.concurrent.IoTThreadFactory;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.service.JMXService;
 
 import java.util.List;
 import java.util.concurrent.BlockingQueue;
diff --git a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedThreadPoolExecutorMBean.java b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedThreadPoolExecutorMBean.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedThreadPoolExecutorMBean.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedThreadPoolExecutorMBean.java
index a01ebb7..f39c5e4 100644
--- a/server/src/main/java/org/apache/iotdb/db/concurrent/threadpool/WrappedThreadPoolExecutorMBean.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/threadpool/WrappedThreadPoolExecutorMBean.java
@@ -17,6 +17,6 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.concurrent.threadpool;
+package org.apache.iotdb.commons.concurrent.threadpool;
 
 public interface WrappedThreadPoolExecutorMBean extends IThreadPoolMBean {}
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java b/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
similarity index 99%
rename from server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
index feab1ab..f264d65 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.conf;
+package org.apache.iotdb.commons.conf;
 
 public class IoTDBConstant {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/IoTDBException.java b/node-commons/src/main/java/org/apache/iotdb/commons/exception/IoTDBException.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/exception/IoTDBException.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/exception/IoTDBException.java
index 9b86cd3..5101abf 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/IoTDBException.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/exception/IoTDBException.java
@@ -18,7 +18,7 @@
  *
  */
 
-package org.apache.iotdb.db.exception;
+package org.apache.iotdb.commons.exception;
 
 public class IoTDBException extends Exception {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/ShutdownException.java b/node-commons/src/main/java/org/apache/iotdb/commons/exception/ShutdownException.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/exception/ShutdownException.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/exception/ShutdownException.java
index 6b8b6ec..40189da 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/ShutdownException.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/exception/ShutdownException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.exception;
+package org.apache.iotdb.commons.exception;
 
 import org.apache.iotdb.rpc.TSStatusCode;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/StartupException.java b/node-commons/src/main/java/org/apache/iotdb/commons/exception/StartupException.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/exception/StartupException.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/exception/StartupException.java
index 580963e..afe301e 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/StartupException.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/exception/StartupException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.exception;
+package org.apache.iotdb.commons.exception;
 
 import org.apache.iotdb.rpc.TSStatusCode;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/runtime/RPCServiceException.java b/node-commons/src/main/java/org/apache/iotdb/commons/exception/runtime/RPCServiceException.java
similarity index 95%
rename from server/src/main/java/org/apache/iotdb/db/exception/runtime/RPCServiceException.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/exception/runtime/RPCServiceException.java
index 58f3a05..0f5c905 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/runtime/RPCServiceException.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/exception/runtime/RPCServiceException.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.exception.runtime;
+package org.apache.iotdb.commons.exception.runtime;
 
 public class RPCServiceException extends RuntimeException {
 
diff --git a/iotdb-commons/src/main/java/org/apache/iotdb/commons/hash/APHashExecutor.java b/node-commons/src/main/java/org/apache/iotdb/commons/hash/APHashExecutor.java
similarity index 100%
rename from iotdb-commons/src/main/java/org/apache/iotdb/commons/hash/APHashExecutor.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/hash/APHashExecutor.java
diff --git a/iotdb-commons/src/main/java/org/apache/iotdb/commons/hash/BKDRHashExecutor.java b/node-commons/src/main/java/org/apache/iotdb/commons/hash/BKDRHashExecutor.java
similarity index 100%
rename from iotdb-commons/src/main/java/org/apache/iotdb/commons/hash/BKDRHashExecutor.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/hash/BKDRHashExecutor.java
diff --git a/iotdb-commons/src/main/java/org/apache/iotdb/commons/hash/DeviceGroupHashExecutor.java b/node-commons/src/main/java/org/apache/iotdb/commons/hash/DeviceGroupHashExecutor.java
similarity index 100%
rename from iotdb-commons/src/main/java/org/apache/iotdb/commons/hash/DeviceGroupHashExecutor.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/hash/DeviceGroupHashExecutor.java
diff --git a/iotdb-commons/src/main/java/org/apache/iotdb/commons/hash/JSHashExecutor.java b/node-commons/src/main/java/org/apache/iotdb/commons/hash/JSHashExecutor.java
similarity index 100%
rename from iotdb-commons/src/main/java/org/apache/iotdb/commons/hash/JSHashExecutor.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/hash/JSHashExecutor.java
diff --git a/iotdb-commons/src/main/java/org/apache/iotdb/commons/hash/SDBMHashExecutor.java b/node-commons/src/main/java/org/apache/iotdb/commons/hash/SDBMHashExecutor.java
similarity index 100%
rename from iotdb-commons/src/main/java/org/apache/iotdb/commons/hash/SDBMHashExecutor.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/hash/SDBMHashExecutor.java
diff --git a/server/src/main/java/org/apache/iotdb/db/service/thrift/ThriftServiceThread.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/AbstractThriftServiceThread.java
similarity index 91%
rename from server/src/main/java/org/apache/iotdb/db/service/thrift/ThriftServiceThread.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/service/AbstractThriftServiceThread.java
index 462a2e5..4940c19 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/ThriftServiceThread.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/AbstractThriftServiceThread.java
@@ -17,13 +17,11 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.service.thrift;
+package org.apache.iotdb.commons.service;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.conf.IoTDBConstant;
-import org.apache.iotdb.db.exception.runtime.RPCServiceException;
-import org.apache.iotdb.db.utils.CommonUtils;
-import org.apache.iotdb.rpc.RpcTransportFactory;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.runtime.RPCServiceException;
 
 import org.apache.thrift.TBaseAsyncProcessor;
 import org.apache.thrift.TProcessor;
@@ -40,6 +38,7 @@ import org.apache.thrift.transport.TNonblockingServerTransport;
 import org.apache.thrift.transport.TServerSocket;
 import org.apache.thrift.transport.TServerTransport;
 import org.apache.thrift.transport.TTransportException;
+import org.apache.thrift.transport.TTransportFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -47,9 +46,9 @@ import java.net.InetSocketAddress;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-public class ThriftServiceThread extends Thread {
+public abstract class AbstractThriftServiceThread extends Thread {
 
-  private static final Logger logger = LoggerFactory.getLogger(ThriftServiceThread.class);
+  private static final Logger logger = LoggerFactory.getLogger(AbstractThriftServiceThread.class);
   private TServerTransport serverTransport;
   private TServer poolServer;
   private CountDownLatch threadStopLatch;
@@ -66,6 +65,8 @@ public class ThriftServiceThread extends Thread {
     protocolFactory = getProtocolFactory(compress);
   }
 
+  public abstract TTransportFactory getTTransportFactory();
+
   public static TProtocolFactory getProtocolFactory(boolean compress) {
     if (compress) {
       return compactProtocolFactory;
@@ -96,7 +97,7 @@ public class ThriftServiceThread extends Thread {
 
   /** for asynced ThriftService. */
   @SuppressWarnings("squid:S107")
-  public ThriftServiceThread(
+  public AbstractThriftServiceThread(
       TBaseAsyncProcessor processor,
       String serviceName,
       String threadsName,
@@ -137,7 +138,7 @@ public class ThriftServiceThread extends Thread {
 
   /** for synced ThriftServiceThread */
   @SuppressWarnings("squid:S107")
-  public ThriftServiceThread(
+  public AbstractThriftServiceThread(
       TProcessor processor,
       String serviceName,
       String threadsName,
@@ -166,13 +167,13 @@ public class ThriftServiceThread extends Thread {
     TThreadPoolServer.Args poolArgs = new TThreadPoolServer.Args(serverTransport);
     poolArgs
         .maxWorkerThreads(maxWorkerThreads)
-        .minWorkerThreads(CommonUtils.getCpuCores())
+        .minWorkerThreads(Runtime.getRuntime().availableProcessors())
         .stopTimeoutVal(timeoutSecond);
     poolArgs.executorService =
         IoTDBThreadPoolFactory.createThriftRpcClientThreadPool(poolArgs, threadsName);
     poolArgs.processor(processor);
     poolArgs.protocolFactory(protocolFactory);
-    poolArgs.transportFactory(RpcTransportFactory.INSTANCE);
+    poolArgs.transportFactory(getTTransportFactory());
     return poolArgs;
   }
 
@@ -185,17 +186,17 @@ public class ThriftServiceThread extends Thread {
     TThreadedSelectorServer.Args poolArgs =
         new TThreadedSelectorServer.Args((TNonblockingServerTransport) serverTransport);
     poolArgs.maxReadBufferBytes = maxReadBufferBytes;
-    poolArgs.selectorThreads(CommonUtils.getCpuCores());
+    poolArgs.selectorThreads(Runtime.getRuntime().availableProcessors());
     poolArgs.executorService(
         IoTDBThreadPoolFactory.createThriftRpcClientThreadPool(
-            CommonUtils.getCpuCores(),
+            Runtime.getRuntime().availableProcessors(),
             maxWorkerThreads,
             timeoutSecond,
             TimeUnit.SECONDS,
             threadsName));
     poolArgs.processor(processor);
     poolArgs.protocolFactory(protocolFactory);
-    poolArgs.transportFactory(RpcTransportFactory.INSTANCE);
+    poolArgs.transportFactory(getTTransportFactory());
     return poolArgs;
   }
 
@@ -209,14 +210,14 @@ public class ThriftServiceThread extends Thread {
     poolArgs.maxReadBufferBytes = maxReadBufferBytes;
     poolArgs.executorService(
         IoTDBThreadPoolFactory.createThriftRpcClientThreadPool(
-            CommonUtils.getCpuCores(),
+            Runtime.getRuntime().availableProcessors(),
             maxWorkerThreads,
             timeoutSecond,
             TimeUnit.SECONDS,
             threadsName));
     poolArgs.processor(processor);
     poolArgs.protocolFactory(protocolFactory);
-    poolArgs.transportFactory(RpcTransportFactory.INSTANCE);
+    poolArgs.transportFactory(getTTransportFactory());
     return poolArgs;
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/service/IService.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/IService.java
similarity index 89%
rename from server/src/main/java/org/apache/iotdb/db/service/IService.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/service/IService.java
index dea3f0c..7437d47 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/IService.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/IService.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.service;
+package org.apache.iotdb.commons.service;
 
-import org.apache.iotdb.db.exception.ShutdownException;
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.exception.ShutdownException;
+import org.apache.iotdb.commons.exception.StartupException;
 
 public interface IService {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/service/JMXService.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/JMXService.java
similarity index 97%
rename from server/src/main/java/org/apache/iotdb/db/service/JMXService.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/service/JMXService.java
index 9fe9cee..c917885 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/JMXService.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/JMXService.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.service;
+package org.apache.iotdb.commons.service;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/RegisterManager.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/RegisterManager.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/service/RegisterManager.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/service/RegisterManager.java
index e096d3e..db82c58 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/RegisterManager.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/RegisterManager.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.service;
+package org.apache.iotdb.commons.service;
 
+import org.apache.iotdb.commons.exception.ShutdownException;
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.exception.ShutdownException;
-import org.apache.iotdb.db.exception.StartupException;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/ServiceType.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/ServiceType.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/service/ServiceType.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/service/ServiceType.java
index 95edca6..6d00f88 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/ServiceType.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/ServiceType.java
@@ -17,9 +17,7 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.service;
-
-import org.apache.iotdb.db.conf.IoTDBConstant;
+package org.apache.iotdb.commons.service;
 
 public enum ServiceType {
   STORAGE_ENGINE_SERVICE("Storage Engine ServerService", ""),
@@ -48,7 +46,7 @@ public enum ServiceType {
   TRIGGER_REGISTRATION_SERVICE("Trigger Registration Service", ""),
   CACHE_HIT_RATIO_DISPLAY_SERVICE(
       "CACHE_HIT_RATIO_DISPLAY_SERVICE",
-      generateJmxName(IoTDBConstant.IOTDB_PACKAGE, "Cache Hit Ratio")),
+      generateJmxName("org.apache.iotdb.service", "Cache Hit Ratio")),
   QUERY_TIME_MANAGER("Query time manager", "Query time"),
 
   FLUSH_SERVICE(
@@ -66,7 +64,8 @@ public enum ServiceType {
       "Cluster Data Heartbeat RPC Service", "ClusterDataHeartbeatRPCService"),
   CLUSTER_META_ENGINE("Cluster Meta Engine", "ClusterMetaEngine"),
   CLUSTER_DATA_ENGINE("Cluster Data Engine", "ClusterDataEngine"),
-  REST_SERVICE("REST Service", "REST Service");
+  REST_SERVICE("REST Service", "REST Service"),
+  CONFIG_NODE_SERVICE("Config Node service", "ConfigNodeRPCServer");
 
   private final String name;
   private final String jmxName;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/StartupCheck.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupCheck.java
similarity index 90%
rename from server/src/main/java/org/apache/iotdb/db/service/StartupCheck.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/service/StartupCheck.java
index 429f84f..a34e253 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/StartupCheck.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupCheck.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.service;
+package org.apache.iotdb.commons.service;
 
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.exception.StartupException;
 
 @FunctionalInterface
 public interface StartupCheck {
diff --git a/server/src/main/java/org/apache/iotdb/db/service/StartupChecks.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupChecks.java
similarity index 90%
rename from server/src/main/java/org/apache/iotdb/db/service/StartupChecks.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/service/StartupChecks.java
index d57ef78..1000531 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/StartupChecks.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupChecks.java
@@ -16,11 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.service;
+package org.apache.iotdb.commons.service;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
-import org.apache.iotdb.db.exception.StartupException;
-import org.apache.iotdb.db.utils.CommonUtils;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.utils.JVMCommonUtils;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -46,7 +46,7 @@ public class StartupChecks {
       };
   public static final StartupCheck checkJDK =
       () -> {
-        int version = CommonUtils.getJdkVersion();
+        int version = JVMCommonUtils.getJdkVersion();
         if (version < IoTDBConstant.MIN_SUPPORTED_JDK_VERSION) {
           throw new StartupException(
               String.format(
diff --git a/server/src/main/java/org/apache/iotdb/db/service/thrift/ThriftService.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/ThriftService.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/service/thrift/ThriftService.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/service/ThriftService.java
index 836f6b9..bc93f6d 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/ThriftService.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/ThriftService.java
@@ -17,12 +17,10 @@
  * under the License.
  */
 
-package org.apache.iotdb.db.service.thrift;
+package org.apache.iotdb.commons.service;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
-import org.apache.iotdb.db.exception.StartupException;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.JMXService;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.StartupException;
 
 import org.apache.thrift.TProcessor;
 import org.slf4j.Logger;
@@ -40,7 +38,7 @@ public abstract class ThriftService implements IService {
   protected final String mbeanName =
       String.format(
           "%s:%s=%s", IoTDBConstant.IOTDB_PACKAGE, IoTDBConstant.JMX_TYPE, getID().getJmxName());
-  protected ThriftServiceThread thriftServiceThread;
+  protected AbstractThriftServiceThread thriftServiceThread;
   protected TProcessor processor;
 
   private CountDownLatch stopLatch;
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/service/ThriftServiceThread.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/ThriftServiceThread.java
new file mode 100644
index 0000000..365d7e6
--- /dev/null
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/ThriftServiceThread.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.commons.service;
+
+import org.apache.iotdb.rpc.RpcTransportFactory;
+
+import org.apache.thrift.TBaseAsyncProcessor;
+import org.apache.thrift.TProcessor;
+import org.apache.thrift.server.TServerEventHandler;
+import org.apache.thrift.transport.TTransportFactory;
+
+public class ThriftServiceThread extends AbstractThriftServiceThread {
+
+  /** for asynced ThriftService. */
+  @SuppressWarnings("squid:S107")
+  public ThriftServiceThread(
+      TBaseAsyncProcessor processor,
+      String serviceName,
+      String threadsName,
+      String bindAddress,
+      int port,
+      int maxWorkerThreads,
+      int timeoutSecond,
+      TServerEventHandler serverEventHandler,
+      boolean compress,
+      int connectionTimeoutInMS,
+      int maxReadBufferBytes,
+      ServerType serverType) {
+    super(
+        processor,
+        serviceName,
+        threadsName,
+        bindAddress,
+        port,
+        maxWorkerThreads,
+        timeoutSecond,
+        serverEventHandler,
+        compress,
+        connectionTimeoutInMS,
+        maxReadBufferBytes,
+        serverType);
+  }
+
+  /** for synced ThriftServiceThread */
+  @SuppressWarnings("squid:S107")
+  public ThriftServiceThread(
+      TProcessor processor,
+      String serviceName,
+      String threadsName,
+      String bindAddress,
+      int port,
+      int maxWorkerThreads,
+      int timeoutSecond,
+      TServerEventHandler serverEventHandler,
+      boolean compress) {
+    super(
+        processor,
+        serviceName,
+        threadsName,
+        bindAddress,
+        port,
+        maxWorkerThreads,
+        timeoutSecond,
+        serverEventHandler,
+        compress);
+  }
+
+  @Override
+  public TTransportFactory getTTransportFactory() {
+    return RpcTransportFactory.INSTANCE;
+  }
+}
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/utils/JVMCommonUtils.java b/node-commons/src/main/java/org/apache/iotdb/commons/utils/JVMCommonUtils.java
new file mode 100644
index 0000000..a0a80cf
--- /dev/null
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/utils/JVMCommonUtils.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.commons.utils;
+
+import org.apache.iotdb.tsfile.fileSystem.FSFactoryProducer;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.stream.Stream;
+
+public class JVMCommonUtils {
+  /** Default executor pool maximum size. */
+  public static final int MAX_EXECUTOR_POOL_SIZE = Math.max(100, getCpuCores() * 5);
+
+  private static final int CPUS = Runtime.getRuntime().availableProcessors();
+
+  /**
+   * get JDK version.
+   *
+   * @return JDK version (int type)
+   */
+  public static int getJdkVersion() {
+    String[] javaVersionElements = System.getProperty("java.version").split("\\.");
+    if (Integer.parseInt(javaVersionElements[0]) == 1) {
+      return Integer.parseInt(javaVersionElements[1]);
+    } else {
+      return Integer.parseInt(javaVersionElements[0]);
+    }
+  }
+
+  /**
+   * NOTICE: This method is currently used only for data dir, thus using FSFactory to get file
+   *
+   * @param dir directory path
+   * @return
+   */
+  public static long getUsableSpace(String dir) {
+    File dirFile = FSFactoryProducer.getFSFactory().getFile(dir);
+    dirFile.mkdirs();
+    return dirFile.getFreeSpace();
+  }
+
+  public static boolean hasSpace(String dir) {
+    return getUsableSpace(dir) > 0;
+  }
+
+  public static long getOccupiedSpace(String folderPath) throws IOException {
+    Path folder = Paths.get(folderPath);
+    try (Stream<Path> s = Files.walk(folder)) {
+      return s.filter(p -> p.toFile().isFile()).mapToLong(p -> p.toFile().length()).sum();
+    }
+  }
+
+  public static int getCpuCores() {
+    return CPUS;
+  }
+
+  public static int getMaxExecutorPoolSize() {
+    return MAX_EXECUTOR_POOL_SIZE;
+  }
+}
diff --git a/iotdb-commons/src/main/java/org/apache/iotdb/commons/utils/TestOnly.java b/node-commons/src/main/java/org/apache/iotdb/commons/utils/TestOnly.java
similarity index 100%
rename from iotdb-commons/src/main/java/org/apache/iotdb/commons/utils/TestOnly.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/utils/TestOnly.java
diff --git a/server/src/test/java/org/apache/iotdb/db/concurrent/IoTDBDefaultThreadExceptionHandlerTest.java b/node-commons/src/test/java/org/apache/iotdb/commons/IoTDBDefaultThreadExceptionHandlerTest.java
similarity index 98%
rename from server/src/test/java/org/apache/iotdb/db/concurrent/IoTDBDefaultThreadExceptionHandlerTest.java
rename to node-commons/src/test/java/org/apache/iotdb/commons/IoTDBDefaultThreadExceptionHandlerTest.java
index 9a05015..e3b4bd9 100644
--- a/server/src/test/java/org/apache/iotdb/db/concurrent/IoTDBDefaultThreadExceptionHandlerTest.java
+++ b/node-commons/src/test/java/org/apache/iotdb/commons/IoTDBDefaultThreadExceptionHandlerTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.concurrent;
+package org.apache.iotdb.commons;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/server/src/test/java/org/apache/iotdb/db/concurrent/IoTDBThreadPoolFactoryTest.java b/node-commons/src/test/java/org/apache/iotdb/commons/IoTDBThreadPoolFactoryTest.java
similarity index 97%
rename from server/src/test/java/org/apache/iotdb/db/concurrent/IoTDBThreadPoolFactoryTest.java
rename to node-commons/src/test/java/org/apache/iotdb/commons/IoTDBThreadPoolFactoryTest.java
index 72de1f6..a58f274 100644
--- a/server/src/test/java/org/apache/iotdb/db/concurrent/IoTDBThreadPoolFactoryTest.java
+++ b/node-commons/src/test/java/org/apache/iotdb/commons/IoTDBThreadPoolFactoryTest.java
@@ -16,7 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.concurrent;
+package org.apache.iotdb.commons;
+
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.WrappedRunnable;
 
 import org.apache.thrift.server.TThreadPoolServer;
 import org.apache.thrift.server.TThreadPoolServer.Args;
diff --git a/pom.xml b/pom.xml
index da38d70..65bb55f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -102,7 +102,7 @@
         <module>flink-iotdb-connector</module>
         <module>distribution</module>
         <module>hive-connector</module>
-        <module>iotdb-commons</module>
+        <module>node-commons</module>
         <module>confignode</module>
         <module>cluster</module>
         <module>cross-tests</module>
diff --git a/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java b/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
index 6c220d0..b873726 100644
--- a/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
+++ b/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
@@ -18,10 +18,10 @@
  */
 package org.apache.iotdb.db.auth;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.auth.authorizer.BasicAuthorizer;
 import org.apache.iotdb.db.auth.authorizer.IAuthorizer;
 import org.apache.iotdb.db.auth.entity.PrivilegeType;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.metadata.path.PartialPath;
 import org.apache.iotdb.db.qp.logical.Operator;
diff --git a/server/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java b/server/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
index 23af06c..f244dd6 100644
--- a/server/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
+++ b/server/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
@@ -18,17 +18,17 @@
  */
 package org.apache.iotdb.db.auth.authorizer;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.entity.PrivilegeType;
 import org.apache.iotdb.db.auth.entity.Role;
 import org.apache.iotdb.db.auth.entity.User;
 import org.apache.iotdb.db.auth.role.IRoleManager;
 import org.apache.iotdb.db.auth.user.IUserManager;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.StartupException;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.ServiceType;
 import org.apache.iotdb.db.utils.AuthUtils;
 
 import org.slf4j.Logger;
diff --git a/server/src/main/java/org/apache/iotdb/db/auth/role/BasicRoleManager.java b/server/src/main/java/org/apache/iotdb/db/auth/role/BasicRoleManager.java
index 8ac726c..6540fb5 100644
--- a/server/src/main/java/org/apache/iotdb/db/auth/role/BasicRoleManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/auth/role/BasicRoleManager.java
@@ -18,9 +18,9 @@
  */
 package org.apache.iotdb.db.auth.role;
 
+import org.apache.iotdb.commons.concurrent.HashLock;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.entity.Role;
-import org.apache.iotdb.db.concurrent.HashLock;
 import org.apache.iotdb.db.utils.AuthUtils;
 
 import java.io.IOException;
diff --git a/server/src/main/java/org/apache/iotdb/db/auth/role/LocalFileRoleAccessor.java b/server/src/main/java/org/apache/iotdb/db/auth/role/LocalFileRoleAccessor.java
index d7266912..9784129 100644
--- a/server/src/main/java/org/apache/iotdb/db/auth/role/LocalFileRoleAccessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/auth/role/LocalFileRoleAccessor.java
@@ -18,9 +18,9 @@
  */
 package org.apache.iotdb.db.auth.role;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.auth.entity.PathPrivilege;
 import org.apache.iotdb.db.auth.entity.Role;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
 import org.apache.iotdb.db.utils.IOUtils;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java b/server/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java
index 9a5a261..76124d2 100644
--- a/server/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java
@@ -18,9 +18,9 @@
  */
 package org.apache.iotdb.db.auth.user;
 
+import org.apache.iotdb.commons.concurrent.HashLock;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.entity.User;
-import org.apache.iotdb.db.concurrent.HashLock;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.utils.AuthUtils;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/auth/user/LocalFileUserAccessor.java b/server/src/main/java/org/apache/iotdb/db/auth/user/LocalFileUserAccessor.java
index 005e400..ad85e0d 100644
--- a/server/src/main/java/org/apache/iotdb/db/auth/user/LocalFileUserAccessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/auth/user/LocalFileUserAccessor.java
@@ -18,9 +18,9 @@
  */
 package org.apache.iotdb.db.auth.user;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.auth.entity.PathPrivilege;
 import org.apache.iotdb.db.auth.entity.User;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
 import org.apache.iotdb.db.utils.IOUtils;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 2ef7b47..5a956f4 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.conf;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.compaction.CompactionPriority;
 import org.apache.iotdb.db.engine.compaction.cross.CrossCompactionStrategy;
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java
index d725617..5a48019 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.conf;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
 import org.apache.iotdb.db.exception.ConfigurationException;
 import org.apache.iotdb.db.metadata.upgrade.MetadataUpgrader;
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 22eea09..d608635 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.conf;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.compaction.CompactionPriority;
@@ -561,6 +562,8 @@ public class IoTDBDescriptor {
         maxConcurrentClientNum = 65535;
       }
 
+      conf.setRpcMaxConcurrentClientNum(maxConcurrentClientNum);
+
       conf.setEnableWatermark(
           Boolean.parseBoolean(
               properties.getProperty(
@@ -574,8 +577,6 @@ public class IoTDBDescriptor {
 
       loadAutoCreateSchemaProps(properties);
 
-      conf.setRpcMaxConcurrentClientNum(maxConcurrentClientNum);
-
       conf.setTsFileStorageFs(
           properties.getProperty("tsfile_storage_fs", conf.getTsFileStorageFs().toString()));
       conf.setCoreSitePath(properties.getProperty("core_site_path", conf.getCoreSitePath()));
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java b/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java
index 7123428..82c0b3e 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.conf.directories;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.directories.strategy.DirectoryStrategy;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/DirectoryStrategy.java b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/DirectoryStrategy.java
index b055899..158b9be 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/DirectoryStrategy.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/DirectoryStrategy.java
@@ -18,9 +18,9 @@
  */
 package org.apache.iotdb.db.conf.directories.strategy;
 
+import org.apache.iotdb.commons.utils.JVMCommonUtils;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
-import org.apache.iotdb.db.utils.CommonUtils;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -48,7 +48,7 @@ public abstract class DirectoryStrategy {
   public void setFolders(List<String> folders) throws DiskSpaceInsufficientException {
     boolean hasSpace = false;
     for (String folder : folders) {
-      if (CommonUtils.hasSpace(folder)) {
+      if (JVMCommonUtils.hasSpace(folder)) {
         hasSpace = true;
         break;
       }
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/MaxDiskUsableSpaceFirstStrategy.java b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/MaxDiskUsableSpaceFirstStrategy.java
index 2757404..0ac5db6 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/MaxDiskUsableSpaceFirstStrategy.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/MaxDiskUsableSpaceFirstStrategy.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.conf.directories.strategy;
 
+import org.apache.iotdb.commons.utils.JVMCommonUtils;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
-import org.apache.iotdb.db.utils.CommonUtils;
 
 public class MaxDiskUsableSpaceFirstStrategy extends DirectoryStrategy {
 
@@ -35,11 +35,11 @@ public class MaxDiskUsableSpaceFirstStrategy extends DirectoryStrategy {
 
     for (int i = 0; i < folders.size(); i++) {
       String folder = folders.get(i);
-      if (!CommonUtils.hasSpace(folder)) {
+      if (!JVMCommonUtils.hasSpace(folder)) {
         continue;
       }
 
-      long space = CommonUtils.getUsableSpace(folder);
+      long space = JVMCommonUtils.getUsableSpace(folder);
       if (space > maxSpace) {
         maxSpace = space;
         maxIndex = i;
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/MinFolderOccupiedSpaceFirstStrategy.java b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/MinFolderOccupiedSpaceFirstStrategy.java
index 2449381..5f50027 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/MinFolderOccupiedSpaceFirstStrategy.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/MinFolderOccupiedSpaceFirstStrategy.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.conf.directories.strategy;
 
+import org.apache.iotdb.commons.utils.JVMCommonUtils;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
-import org.apache.iotdb.db.utils.CommonUtils;
 
 import java.io.IOException;
 
@@ -36,13 +36,13 @@ public class MinFolderOccupiedSpaceFirstStrategy extends DirectoryStrategy {
 
     for (int i = 0; i < folders.size(); i++) {
       String folder = folders.get(i);
-      if (!CommonUtils.hasSpace(folder)) {
+      if (!JVMCommonUtils.hasSpace(folder)) {
         continue;
       }
 
       long space = 0;
       try {
-        space = CommonUtils.getOccupiedSpace(folder);
+        space = JVMCommonUtils.getOccupiedSpace(folder);
       } catch (IOException e) {
         logger.error("Cannot calculate occupied space for path {}.", folder, e);
       }
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/RandomOnDiskUsableSpaceStrategy.java b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/RandomOnDiskUsableSpaceStrategy.java
index 392475d..fa3ee7b 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/RandomOnDiskUsableSpaceStrategy.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/RandomOnDiskUsableSpaceStrategy.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.conf.directories.strategy;
 
+import org.apache.iotdb.commons.utils.JVMCommonUtils;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
-import org.apache.iotdb.db.utils.CommonUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -58,7 +58,7 @@ public class RandomOnDiskUsableSpaceStrategy extends DirectoryStrategy {
     List<Long> spaceList = new ArrayList<>();
     for (int i = 0; i < folders.size(); i++) {
       String folder = folders.get(i);
-      spaceList.add(CommonUtils.getUsableSpace(folder));
+      spaceList.add(JVMCommonUtils.getUsableSpace(folder));
     }
     return spaceList;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/SequenceStrategy.java b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/SequenceStrategy.java
index 02aec9f..2160e8f 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/SequenceStrategy.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/directories/strategy/SequenceStrategy.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.conf.directories.strategy;
 
+import org.apache.iotdb.commons.utils.JVMCommonUtils;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
-import org.apache.iotdb.db.utils.CommonUtils;
 
 import java.util.List;
 
@@ -35,7 +35,7 @@ public class SequenceStrategy extends DirectoryStrategy {
     // so currentIndex will not be -1 after loop
     currentIndex = -1;
     for (int i = 0; i < folders.size(); i++) {
-      if (CommonUtils.hasSpace(folders.get(i))) {
+      if (JVMCommonUtils.hasSpace(folders.get(i))) {
         currentIndex = i;
         break;
       }
@@ -52,7 +52,7 @@ public class SequenceStrategy extends DirectoryStrategy {
 
   private int tryGetNextIndex(int start) throws DiskSpaceInsufficientException {
     int index = (start + 1) % folders.size();
-    while (!CommonUtils.hasSpace(folders.get(index))) {
+    while (!JVMCommonUtils.hasSpace(folders.get(index))) {
       index = (index + 1) % folders.size();
       if (index == start) {
         throw new DiskSpaceInsufficientException(folders);
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceDescriptor.java
index 86c3f42..5f1871a 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/rest/IoTDBRestServiceDescriptor.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.conf.rest;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
index 8140cde..2c0075d 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
@@ -18,9 +18,12 @@
  */
 package org.apache.iotdb.db.engine;
 
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.exception.ShutdownException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.ServerConfigConsistent;
@@ -36,7 +39,6 @@ import org.apache.iotdb.db.engine.storagegroup.VirtualStorageGroupProcessor.Time
 import org.apache.iotdb.db.engine.storagegroup.virtualSg.StorageGroupManager;
 import org.apache.iotdb.db.exception.BatchProcessException;
 import org.apache.iotdb.db.exception.LoadFileException;
-import org.apache.iotdb.db.exception.ShutdownException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.StorageGroupProcessorException;
 import org.apache.iotdb.db.exception.TsFileProcessorException;
@@ -56,9 +58,7 @@ import org.apache.iotdb.db.qp.physical.crud.InsertRowPlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertRowsOfOneDevicePlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
 import org.apache.iotdb.db.rescon.SystemInfo;
-import org.apache.iotdb.db.service.IService;
 import org.apache.iotdb.db.service.IoTDB;
-import org.apache.iotdb.db.service.ServiceType;
 import org.apache.iotdb.db.utils.ThreadUtils;
 import org.apache.iotdb.db.utils.UpgradeUtils;
 import org.apache.iotdb.rpc.RpcUtils;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/cache/CacheHitRatioMonitor.java b/server/src/main/java/org/apache/iotdb/db/engine/cache/CacheHitRatioMonitor.java
index afe39ff..c320c26 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/cache/CacheHitRatioMonitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/cache/CacheHitRatioMonitor.java
@@ -18,14 +18,14 @@
  */
 package org.apache.iotdb.db.engine.cache;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.JMXService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.engine.flush.FlushManager;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.rescon.MemTableManager;
 import org.apache.iotdb.db.rescon.SystemInfo;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.JMXService;
-import org.apache.iotdb.db.service.ServiceType;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
index cf796ff..92fcc9d 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.engine.cache;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.query.control.FileReaderManager;
 import org.apache.iotdb.db.service.metrics.Metric;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionTaskManager.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionTaskManager.java
index e7b2e3b..df45a21 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionTaskManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionTaskManager.java
@@ -19,17 +19,17 @@
 
 package org.apache.iotdb.db.engine.compaction;
 
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.threadpool.WrappedScheduledExecutorService;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
-import org.apache.iotdb.db.concurrent.threadpool.WrappedScheduledExecutorService;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.cross.AbstractCrossSpaceCompactionTask;
 import org.apache.iotdb.db.engine.compaction.inner.AbstractInnerSpaceCompactionTask;
 import org.apache.iotdb.db.engine.compaction.task.AbstractCompactionTask;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.ServiceType;
 import org.apache.iotdb.db.service.metrics.Metric;
 import org.apache.iotdb.db.service.metrics.MetricsService;
 import org.apache.iotdb.db.service.metrics.Tag;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionUtils.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionUtils.java
index 8a96092..10f5bce 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionUtils.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.inner.utils.MultiTsFileDeviceIterator;
 import org.apache.iotdb.db.engine.compaction.writer.AbstractCompactionWriter;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/TsFileIdentifier.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/TsFileIdentifier.java
index a011c63..503eafc 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/TsFileIdentifier.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/TsFileIdentifier.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 
 import java.io.File;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionExceptionHandler.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionExceptionHandler.java
index 3da6de5..4836ced 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionExceptionHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionExceptionHandler.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.cross;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.compaction.CompactionUtils;
 import org.apache.iotdb.db.engine.storagegroup.TsFileManager;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/RewriteCrossSpaceCompactionSelector.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/RewriteCrossSpaceCompactionSelector.java
index 452e4d0..05423ab 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/RewriteCrossSpaceCompactionSelector.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/RewriteCrossSpaceCompactionSelector.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.engine.compaction.cross.rewrite;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.CompactionTaskManager;
 import org.apache.iotdb.db.engine.compaction.cross.AbstractCrossSpaceCompactionSelector;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/task/RewriteCrossCompactionRecoverTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/task/RewriteCrossCompactionRecoverTask.java
index 9fd2c7d..ec04df6 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/task/RewriteCrossCompactionRecoverTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/task/RewriteCrossCompactionRecoverTask.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction.cross.rewrite.task;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.TsFileIdentifier;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/task/RewriteCrossSpaceCompactionTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/task/RewriteCrossSpaceCompactionTask.java
index dffd329..b0558af 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/task/RewriteCrossSpaceCompactionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/rewrite/task/RewriteCrossSpaceCompactionTask.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction.cross.rewrite.task;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.compaction.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.cross.AbstractCrossSpaceCompactionTask;
 import org.apache.iotdb.db.engine.compaction.cross.CrossSpaceCompactionExceptionHandler;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/AbstractInnerSpaceCompactionTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/AbstractInnerSpaceCompactionTask.java
index ca00952..06f4a91 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/AbstractInnerSpaceCompactionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/AbstractInnerSpaceCompactionTask.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.inner;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.compaction.task.AbstractCompactionTask;
 import org.apache.iotdb.db.engine.storagegroup.TsFileNameGenerator;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionExceptionHandler.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionExceptionHandler.java
index 5478e21..60d8e27 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionExceptionHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionExceptionHandler.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction.inner;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.CompactionUtils;
 import org.apache.iotdb.db.engine.storagegroup.TsFileManager;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTask.java
index af90f86..09662aa 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTask.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction.inner.sizetiered;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.TsFileIdentifier;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java
index bed2abb..be35a9e 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.engine.compaction.inner.sizetiered;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.CompactionTaskManager;
 import org.apache.iotdb.db.engine.compaction.inner.AbstractInnerSpaceCompactionSelector;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTask.java
index a77e625..4d69cf6 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTask.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction.inner.sizetiered;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.compaction.CompactionUtils;
 import org.apache.iotdb.db.engine.compaction.inner.AbstractInnerSpaceCompactionTask;
 import org.apache.iotdb.db.engine.compaction.inner.InnerSpaceCompactionExceptionHandler;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/InnerSpaceCompactionUtils.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/InnerSpaceCompactionUtils.java
index 2a3098a..8755038 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/InnerSpaceCompactionUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/InnerSpaceCompactionUtils.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.inner.utils;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.cross.CrossCompactionStrategy;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.manage.CrossSpaceCompactionResource;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/task/AbstractCompactionTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/task/AbstractCompactionTask.java
index ce80aff..a1610e7 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/task/AbstractCompactionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/task/AbstractCompactionTask.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.task;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.compaction.CompactionTaskManager;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.task.RewriteCrossCompactionRecoverTask;
 import org.apache.iotdb.db.engine.compaction.inner.sizetiered.SizeTieredCompactionRecoverTask;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/task/CompactionRecoverTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/task/CompactionRecoverTask.java
index f4d19bf..ec0c064 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/task/CompactionRecoverTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/task/CompactionRecoverTask.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction.task;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.compaction.utils.log.CompactionLogger;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/utils/log/CompactionLogAnalyzer.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/utils/log/CompactionLogAnalyzer.java
index 24f8902..c827cf8 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/utils/log/CompactionLogAnalyzer.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/utils/log/CompactionLogAnalyzer.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction.utils.log;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.compaction.TsFileIdentifier;
 import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryService.java b/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryService.java
index 1ae12eb..1d00699 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryService.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryService.java
@@ -19,19 +19,19 @@
 
 package org.apache.iotdb.db.engine.cq;
 
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
 import org.apache.iotdb.db.exception.ContinuousQueryException;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
 import org.apache.iotdb.db.qp.physical.sys.CreateContinuousQueryPlan;
 import org.apache.iotdb.db.qp.physical.sys.DropContinuousQueryPlan;
 import org.apache.iotdb.db.qp.utils.DatetimeUtils;
 import org.apache.iotdb.db.query.dataset.ShowContinuousQueriesResult;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.ServiceType;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryTask.java b/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryTask.java
index 510eb04..39a027d 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryTask.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.engine.cq;
 
-import org.apache.iotdb.db.concurrent.WrappedRunnable;
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.concurrent.WrappedRunnable;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.selectinto.InsertTabletPlansIterator;
 import org.apache.iotdb.db.exception.ContinuousQueryException;
 import org.apache.iotdb.db.exception.StorageEngineException;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryTaskPoolManager.java b/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryTaskPoolManager.java
index 000c713..d928ddd 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryTaskPoolManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/cq/ContinuousQueryTaskPoolManager.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.engine.cq;
 
-import org.apache.iotdb.db.concurrent.IoTThreadFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.IoTThreadFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.rescon.AbstractPoolManager;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/flush/FlushManager.java b/server/src/main/java/org/apache/iotdb/db/engine/flush/FlushManager.java
index 01f4308..278229d 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/flush/FlushManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/flush/FlushManager.java
@@ -18,17 +18,17 @@
  */
 package org.apache.iotdb.db.engine.flush;
 
-import org.apache.iotdb.db.concurrent.WrappedRunnable;
+import org.apache.iotdb.commons.concurrent.WrappedRunnable;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.JMXService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.flush.pool.FlushSubTaskPoolManager;
 import org.apache.iotdb.db.engine.flush.pool.FlushTaskPoolManager;
 import org.apache.iotdb.db.engine.storagegroup.TsFileProcessor;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.rescon.AbstractPoolManager;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.JMXService;
-import org.apache.iotdb.db.service.ServiceType;
 import org.apache.iotdb.db.service.metrics.Metric;
 import org.apache.iotdb.db.service.metrics.MetricsService;
 import org.apache.iotdb.db.service.metrics.Tag;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/flush/pool/FlushSubTaskPoolManager.java b/server/src/main/java/org/apache/iotdb/db/engine/flush/pool/FlushSubTaskPoolManager.java
index 1ff6d92..a1a3e6f 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/flush/pool/FlushSubTaskPoolManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/flush/pool/FlushSubTaskPoolManager.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.engine.flush.pool;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.db.rescon.AbstractPoolManager;
 
 import org.slf4j.Logger;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/flush/pool/FlushTaskPoolManager.java b/server/src/main/java/org/apache/iotdb/db/engine/flush/pool/FlushTaskPoolManager.java
index f9c1e50..bf0c925 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/flush/pool/FlushTaskPoolManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/flush/pool/FlushTaskPoolManager.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.engine.flush.pool;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.rescon.AbstractPoolManager;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/settle/SettleTask.java b/server/src/main/java/org/apache/iotdb/db/engine/settle/SettleTask.java
index 6a01e09..8310468 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/settle/SettleTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/settle/SettleTask.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.settle;
 
-import org.apache.iotdb.db.concurrent.WrappedRunnable;
+import org.apache.iotdb.commons.concurrent.WrappedRunnable;
 import org.apache.iotdb.db.engine.settle.SettleLog.SettleCheckStatus;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.exception.WriteProcessException;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileManager.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileManager.java
index c40149c..8f03876 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileManager.java
@@ -38,7 +38,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
 import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.TSFILE_SUFFIX;
 
 public class TsFileManager {
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileNameGenerator.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileNameGenerator.java
index ae6a13a..b185838 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileNameGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileNameGenerator.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.storagegroup;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
 import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
@@ -33,7 +33,7 @@ import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
 import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.TSFILE_SUFFIX;
 
 public class TsFileNameGenerator {
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
index f5962d0..4a4452c 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
@@ -62,7 +62,7 @@ import java.util.Objects;
 import java.util.Random;
 import java.util.Set;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
 import static org.apache.iotdb.db.engine.storagegroup.TsFileNameGenerator.getTsFileName;
 import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.TSFILE_SUFFIX;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/VirtualStorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/VirtualStorageGroupProcessor.java
index 89468d1..0815d79 100755
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/VirtualStorageGroupProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/VirtualStorageGroupProcessor.java
@@ -18,11 +18,11 @@
  */
 package org.apache.iotdb.db.engine.storagegroup;
 
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.StorageEngine;
@@ -121,7 +121,7 @@ import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import java.util.regex.Pattern;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
 import static org.apache.iotdb.db.engine.compaction.utils.log.CompactionLogger.INNER_COMPACTION_LOG_NAME_SUFFIX_FROM_OLD;
 import static org.apache.iotdb.db.engine.storagegroup.TsFileResource.TEMP_SUFFIX;
 import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.TSFILE_SUFFIX;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/StorageGroupManager.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/StorageGroupManager.java
index cdd0cb2..da482f9 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/StorageGroupManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/virtualSg/StorageGroupManager.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.storagegroup.virtualSg;
 
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.storagegroup.TsFileProcessor;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/trigger/service/TriggerRegistrationService.java b/server/src/main/java/org/apache/iotdb/db/engine/trigger/service/TriggerRegistrationService.java
index 77b5427..ea4ed22 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/trigger/service/TriggerRegistrationService.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/trigger/service/TriggerRegistrationService.java
@@ -19,13 +19,15 @@
 
 package org.apache.iotdb.db.engine.trigger.service;
 
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
 import org.apache.iotdb.db.engine.trigger.api.Trigger;
 import org.apache.iotdb.db.engine.trigger.executor.TriggerExecutor;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.exception.TriggerExecutionException;
 import org.apache.iotdb.db.exception.TriggerManagementException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
@@ -39,9 +41,7 @@ import org.apache.iotdb.db.qp.physical.sys.DropTriggerPlan;
 import org.apache.iotdb.db.qp.physical.sys.StartTriggerPlan;
 import org.apache.iotdb.db.qp.physical.sys.StopTriggerPlan;
 import org.apache.iotdb.db.query.dataset.ListDataSet;
-import org.apache.iotdb.db.service.IService;
 import org.apache.iotdb.db.service.IoTDB;
-import org.apache.iotdb.db.service.ServiceType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.fileSystem.FSFactoryProducer;
 import org.apache.iotdb.tsfile.read.common.RowRecord;
@@ -60,14 +60,14 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TRIGGER_ATTRIBUTES;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TRIGGER_CLASS;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TRIGGER_EVENT;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TRIGGER_NAME;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TRIGGER_PATH;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TRIGGER_STATUS;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TRIGGER_STATUS_STARTED;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TRIGGER_STATUS_STOPPED;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TRIGGER_ATTRIBUTES;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TRIGGER_CLASS;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TRIGGER_EVENT;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TRIGGER_NAME;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TRIGGER_PATH;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TRIGGER_STATUS;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TRIGGER_STATUS_STARTED;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TRIGGER_STATUS_STOPPED;
 
 public class TriggerRegistrationService implements IService {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeTask.java b/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeTask.java
index bcf29d8..4ec2b14 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeTask.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.upgrade;
 
-import org.apache.iotdb.db.concurrent.WrappedRunnable;
+import org.apache.iotdb.commons.concurrent.WrappedRunnable;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.service.UpgradeSevice;
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/ConfigurationException.java b/server/src/main/java/org/apache/iotdb/db/exception/ConfigurationException.java
index 924395b..f615bda 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/ConfigurationException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/ConfigurationException.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class ConfigurationException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/LoadFileException.java b/server/src/main/java/org/apache/iotdb/db/exception/LoadFileException.java
index 3af898d..523044a 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/LoadFileException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/LoadFileException.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class LoadFileException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/MergeException.java b/server/src/main/java/org/apache/iotdb/db/exception/MergeException.java
index ca60758..f315932 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/MergeException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/MergeException.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class MergeException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/QueryIdNotExsitException.java b/server/src/main/java/org/apache/iotdb/db/exception/QueryIdNotExsitException.java
index e76d658..f82ce14 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/QueryIdNotExsitException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/QueryIdNotExsitException.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class QueryIdNotExsitException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/QueryInBatchStatementException.java b/server/src/main/java/org/apache/iotdb/db/exception/QueryInBatchStatementException.java
index bc03853..825d9c4 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/QueryInBatchStatementException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/QueryInBatchStatementException.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class QueryInBatchStatementException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/StorageEngineException.java b/server/src/main/java/org/apache/iotdb/db/exception/StorageEngineException.java
index 19bdf7d..c546472 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/StorageEngineException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/StorageEngineException.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class StorageEngineException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/StorageGroupProcessorException.java b/server/src/main/java/org/apache/iotdb/db/exception/StorageGroupProcessorException.java
index 9a29e7a..c3e6616 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/StorageGroupProcessorException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/StorageGroupProcessorException.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class StorageGroupProcessorException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/SyncConnectionException.java b/server/src/main/java/org/apache/iotdb/db/exception/SyncConnectionException.java
index 814cbd8..74dfa74 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/SyncConnectionException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/SyncConnectionException.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class SyncConnectionException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/SyncDeviceOwnerConflictException.java b/server/src/main/java/org/apache/iotdb/db/exception/SyncDeviceOwnerConflictException.java
index 0c327b4..271c177 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/SyncDeviceOwnerConflictException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/SyncDeviceOwnerConflictException.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class SyncDeviceOwnerConflictException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/SystemCheckException.java b/server/src/main/java/org/apache/iotdb/db/exception/SystemCheckException.java
index beb2c0c..609a24b 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/SystemCheckException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/SystemCheckException.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class SystemCheckException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/TsFileProcessorException.java b/server/src/main/java/org/apache/iotdb/db/exception/TsFileProcessorException.java
index 4c7e72c..aba299a 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/TsFileProcessorException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/TsFileProcessorException.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class TsFileProcessorException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/WriteProcessException.java b/server/src/main/java/org/apache/iotdb/db/exception/WriteProcessException.java
index 933c811..ae380e1 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/WriteProcessException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/WriteProcessException.java
@@ -19,6 +19,7 @@
 
 package org.apache.iotdb.db.exception;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class WriteProcessException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/index/IndexManagerException.java b/server/src/main/java/org/apache/iotdb/db/exception/index/IndexManagerException.java
index 3b7dd05..c86e4a9 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/index/IndexManagerException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/index/IndexManagerException.java
@@ -17,7 +17,7 @@
  */
 package org.apache.iotdb.db.exception.index;
 
-import org.apache.iotdb.db.exception.IoTDBException;
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 
 public class IndexManagerException extends QueryProcessException {
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java b/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java
index c2b74a8..5546f49 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.exception.metadata;
 
-import org.apache.iotdb.db.exception.IoTDBException;
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 /**
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/query/LogicalOperatorException.java b/server/src/main/java/org/apache/iotdb/db/exception/query/LogicalOperatorException.java
index db14933..5a52ce6 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/query/LogicalOperatorException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/query/LogicalOperatorException.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.exception.query;
 
-import org.apache.iotdb.db.exception.IoTDBException;
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 /**
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/query/LogicalOptimizeException.java b/server/src/main/java/org/apache/iotdb/db/exception/query/LogicalOptimizeException.java
index 1f4d537..1316338 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/query/LogicalOptimizeException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/query/LogicalOptimizeException.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.exception.query;
 
-import org.apache.iotdb.db.exception.IoTDBException;
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.db.qp.constant.FilterConstant;
 import org.apache.iotdb.db.qp.constant.FilterConstant.FilterType;
 import org.apache.iotdb.rpc.TSStatusCode;
diff --git a/server/src/main/java/org/apache/iotdb/db/exception/query/QueryProcessException.java b/server/src/main/java/org/apache/iotdb/db/exception/query/QueryProcessException.java
index 6ea4ad3..fbc1309 100644
--- a/server/src/main/java/org/apache/iotdb/db/exception/query/QueryProcessException.java
+++ b/server/src/main/java/org/apache/iotdb/db/exception/query/QueryProcessException.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.exception.query;
 
-import org.apache.iotdb.db.exception.IoTDBException;
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 public class QueryProcessException extends IoTDBException {
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MetadataConstant.java b/server/src/main/java/org/apache/iotdb/db/metadata/MetadataConstant.java
index f8f826e..c9341ac 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MetadataConstant.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MetadataConstant.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.metadata;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 
 public class MetadataConstant {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/SchemaEngine.java b/server/src/main/java/org/apache/iotdb/db/metadata/SchemaEngine.java
index deb40fc..8d03d15 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/SchemaEngine.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/SchemaEngine.java
@@ -18,10 +18,10 @@
  */
 package org.apache.iotdb.db.metadata;
 
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
 import org.apache.iotdb.db.exception.metadata.AliasAlreadyExistException;
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/StorageGroupSchemaManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/StorageGroupSchemaManager.java
index 2782cd5..051566e 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/StorageGroupSchemaManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/StorageGroupSchemaManager.java
@@ -38,8 +38,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_ROOT;
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_ROOT;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 
 // This class implements all the interfaces for storage group management. The MTreeAboveSg is used
 // to manage all the storage groups and MNodes above storage group.
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MNode.java b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MNode.java
index 0e5dda3..38c2591 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/MNode.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.metadata.mnode;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.metadata.path.PartialPath;
 
 import java.util.ArrayList;
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeAboveSG.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeAboveSG.java
index 234ea94..309e111 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeAboveSG.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeAboveSG.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.metadata.mtree;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.MNodeTypeMismatchException;
@@ -60,7 +60,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.ONE_LEVEL_PATH_WILDCARD;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.ONE_LEVEL_PATH_WILDCARD;
 
 public class MTreeAboveSG {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSG.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSG.java
index 424a8b4..9a1273d 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSG.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeBelowSG.java
@@ -86,7 +86,7 @@ import java.util.TreeSet;
 import java.util.stream.Stream;
 
 import static java.util.stream.Collectors.toList;
-import static org.apache.iotdb.db.conf.IoTDBConstant.ONE_LEVEL_PATH_WILDCARD;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.ONE_LEVEL_PATH_WILDCARD;
 import static org.apache.iotdb.db.metadata.MetadataConstant.ALL_RESULT_NODES;
 import static org.apache.iotdb.db.metadata.lastCache.LastCacheManager.getLastTimeStamp;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/Traverser.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/Traverser.java
index 0da4f99..a3f84a4 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/Traverser.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/traverser/Traverser.java
@@ -32,9 +32,9 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.regex.Pattern;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD;
-import static org.apache.iotdb.db.conf.IoTDBConstant.ONE_LEVEL_PATH_WILDCARD;
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_ROOT;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.ONE_LEVEL_PATH_WILDCARD;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_ROOT;
 
 /**
  * This class defines the main traversal framework and declares some methods for result process
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/path/MeasurementPath.java b/server/src/main/java/org/apache/iotdb/db/metadata/path/MeasurementPath.java
index 725d731..a7f8b62 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/path/MeasurementPath.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/path/MeasurementPath.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.metadata.path;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.memtable.IMemTable;
 import org.apache.iotdb.db.engine.memtable.IWritableMemChunk;
 import org.apache.iotdb.db.engine.memtable.IWritableMemChunkGroup;
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/path/PartialPath.java b/server/src/main/java/org/apache/iotdb/db/metadata/path/PartialPath.java
index 04f041a..ee7a727 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/path/PartialPath.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/path/PartialPath.java
@@ -55,8 +55,8 @@ import java.util.Set;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD;
-import static org.apache.iotdb.db.conf.IoTDBConstant.ONE_LEVEL_PATH_WILDCARD;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.ONE_LEVEL_PATH_WILDCARD;
 
 /**
  * A prefix path, suffix path or fullPath generated from SQL. Usually used in the IoTDB server
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/template/TemplateManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/template/TemplateManager.java
index 9b6e77d..f7e3d41 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/template/TemplateManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/template/TemplateManager.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.metadata.template;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.metadata.DuplicatedTemplateException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/upgrade/MetadataUpgrader.java b/server/src/main/java/org/apache/iotdb/db/metadata/upgrade/MetadataUpgrader.java
index 5e2a47f..8b850af 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/upgrade/MetadataUpgrader.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/upgrade/MetadataUpgrader.java
@@ -59,8 +59,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_ROOT;
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_ROOT;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 
 /**
  * IoTDB after v0.13 only support upgrade from v0.12x. This class implements the upgrade program.
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaFormatUtils.java b/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaFormatUtils.java
index ed37edd..49aed55 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaFormatUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaFormatUtils.java
@@ -31,11 +31,11 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.LOSS;
-import static org.apache.iotdb.db.conf.IoTDBConstant.SDT;
-import static org.apache.iotdb.db.conf.IoTDBConstant.SDT_COMP_DEV;
-import static org.apache.iotdb.db.conf.IoTDBConstant.SDT_COMP_MAX_TIME;
-import static org.apache.iotdb.db.conf.IoTDBConstant.SDT_COMP_MIN_TIME;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.LOSS;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.SDT;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.SDT_COMP_DEV;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.SDT_COMP_MAX_TIME;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.SDT_COMP_MIN_TIME;
 
 public class MetaFormatUtils {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaUtils.java b/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaUtils.java
index 959d0df..95e11ed 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/utils/MetaUtils.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.metadata.utils;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/meta/InfluxDBMetaManager.java b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/meta/InfluxDBMetaManager.java
index 36e1d35..ff20c64 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/meta/InfluxDBMetaManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/influxdb/meta/InfluxDBMetaManager.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.protocol.influxdb.meta;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/RestService.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/RestService.java
index 08dda78..446368b 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/RestService.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/RestService.java
@@ -16,12 +16,12 @@
  */
 package org.apache.iotdb.db.protocol.rest;
 
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.conf.rest.IoTDBRestServiceConfig;
 import org.apache.iotdb.db.conf.rest.IoTDBRestServiceDescriptor;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.protocol.rest.filter.ApiOriginFilter;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.ServiceType;
 
 import org.eclipse.jetty.http.HttpVersion;
 import org.eclipse.jetty.server.HttpConfiguration;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExceptionHandler.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExceptionHandler.java
index ce2c9e8..44f5463 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExceptionHandler.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/handler/ExceptionHandler.java
@@ -17,8 +17,8 @@
 
 package org.apache.iotdb.db.protocol.rest.handler;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.db.auth.AuthException;
-import org.apache.iotdb.db.exception.IoTDBException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/GrafanaApiServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/GrafanaApiServiceImpl.java
index 49c0c7e..3a1b3df 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/GrafanaApiServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/GrafanaApiServiceImpl.java
@@ -17,7 +17,7 @@
 
 package org.apache.iotdb.db.protocol.rest.impl;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.protocol.rest.GrafanaApiService;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/PingApiServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/PingApiServiceImpl.java
index 61e025c..d16988e 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/PingApiServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/PingApiServiceImpl.java
@@ -17,10 +17,10 @@
 
 package org.apache.iotdb.db.protocol.rest.impl;
 
+import org.apache.iotdb.commons.service.ThriftService;
 import org.apache.iotdb.db.protocol.rest.PingApiService;
 import org.apache.iotdb.db.protocol.rest.model.ExecutionStatus;
 import org.apache.iotdb.db.service.RPCService;
-import org.apache.iotdb.db.service.thrift.ThriftService;
 import org.apache.iotdb.rpc.TSStatusCode;
 
 import javax.ws.rs.core.Response;
diff --git a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/RestApiServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/RestApiServiceImpl.java
index 98dd6e0..781ea03 100644
--- a/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/RestApiServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/protocol/rest/impl/RestApiServiceImpl.java
@@ -17,7 +17,7 @@
 
 package org.apache.iotdb.db.protocol.rest.impl;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.rest.IoTDBRestServiceDescriptor;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.protocol.rest.RestApiService;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/Planner.java b/server/src/main/java/org/apache/iotdb/db/qp/Planner.java
index 06bb083..9ab4254 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/Planner.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/Planner.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.qp;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.query.LogicalOperatorException;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index 990c72b..995912e 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -18,6 +18,9 @@
  */
 package org.apache.iotdb.db.qp.executor;
 
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.AuthorityChecker;
 import org.apache.iotdb.db.auth.authorizer.BasicAuthorizer;
@@ -26,9 +29,6 @@ import org.apache.iotdb.db.auth.entity.PathPrivilege;
 import org.apache.iotdb.db.auth.entity.PrivilegeType;
 import org.apache.iotdb.db.auth.entity.Role;
 import org.apache.iotdb.db.auth.entity.User;
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.cache.ChunkCache;
@@ -188,41 +188,41 @@ import java.util.Set;
 import java.util.concurrent.Future;
 import java.util.concurrent.ThreadPoolExecutor;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_CHILD_NODES;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_CHILD_PATHS;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_COLUMN;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_BOUNDARY;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_EVERY_INTERVAL;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_FOR_INTERVAL;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_NAME;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_QUERY_SQL;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_TARGET_PATH;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_COUNT;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_DEVICES;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_FUNCTION_CLASS;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_FUNCTION_NAME;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_FUNCTION_TYPE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_ITEM;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_LOCK_INFO;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_PRIVILEGE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_ROLE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_SCHEMA_TEMPLATE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_STORAGE_GROUP;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_COMPRESSION;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_DATATYPE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_ENCODING;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TTL;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_USER;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_VALUE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
-import static org.apache.iotdb.db.conf.IoTDBConstant.FUNCTION_TYPE_BUILTIN_UDAF;
-import static org.apache.iotdb.db.conf.IoTDBConstant.FUNCTION_TYPE_BUILTIN_UDTF;
-import static org.apache.iotdb.db.conf.IoTDBConstant.FUNCTION_TYPE_EXTERNAL_UDAF;
-import static org.apache.iotdb.db.conf.IoTDBConstant.FUNCTION_TYPE_EXTERNAL_UDTF;
-import static org.apache.iotdb.db.conf.IoTDBConstant.FUNCTION_TYPE_NATIVE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD;
-import static org.apache.iotdb.db.conf.IoTDBConstant.QUERY_ID;
-import static org.apache.iotdb.db.conf.IoTDBConstant.STATEMENT;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_CHILD_NODES;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_CHILD_PATHS;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_COLUMN;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_BOUNDARY;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_EVERY_INTERVAL;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_FOR_INTERVAL;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_NAME;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_QUERY_SQL;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_CONTINUOUS_QUERY_TARGET_PATH;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_COUNT;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_DEVICES;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_FUNCTION_CLASS;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_FUNCTION_NAME;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_FUNCTION_TYPE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_ITEM;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_LOCK_INFO;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_PRIVILEGE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_ROLE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_SCHEMA_TEMPLATE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_STORAGE_GROUP;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_COMPRESSION;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_DATATYPE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_ENCODING;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TTL;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_USER;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_VALUE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FILE_NAME_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FUNCTION_TYPE_BUILTIN_UDAF;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FUNCTION_TYPE_BUILTIN_UDTF;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FUNCTION_TYPE_EXTERNAL_UDAF;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FUNCTION_TYPE_EXTERNAL_UDTF;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.FUNCTION_TYPE_NATIVE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.QUERY_ID;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.STATEMENT;
 import static org.apache.iotdb.rpc.TSStatusCode.INTERNAL_SERVER_ERROR;
 import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.TSFILE_SUFFIX;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/BasicOperatorType.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/BasicOperatorType.java
index 108c1a8..ae6e666 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/BasicOperatorType.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/BasicOperatorType.java
@@ -30,7 +30,7 @@ import org.apache.iotdb.tsfile.read.filter.TimeFilter;
 import org.apache.iotdb.tsfile.read.filter.ValueFilter;
 import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.TIME;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.TIME;
 
 /** all basic operator in filter. */
 public enum BasicOperatorType {
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/DeleteDataOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/DeleteDataOperator.java
index 31f7655..1241987 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/DeleteDataOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/crud/DeleteDataOperator.java
@@ -29,7 +29,7 @@ import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.MULTI_LEVEL_PATH_WILDCARD;
 
 /** this class extends {@code RootOperator} and process delete statement. */
 public class DeleteDataOperator extends Operator {
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
index 425a411..97df0b3 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.qp.physical.crud;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.PathNotExistException;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/SetTemplatePlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/SetTemplatePlan.java
index 379f00e..a159b32 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/SetTemplatePlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/SetTemplatePlan.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.qp.physical.sys;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
 import org.apache.iotdb.db.metadata.utils.MetaUtils;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/UnsetTemplatePlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/UnsetTemplatePlan.java
index a7439da..4713ce5 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/UnsetTemplatePlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/UnsetTemplatePlan.java
@@ -20,7 +20,7 @@
 
 package org.apache.iotdb.db.qp.physical.sys;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
 import org.apache.iotdb.db.metadata.utils.MetaUtils;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
index 733c8fb..135f144 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.qp.sql;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.trigger.executor.TriggerEvent;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
index e5cb335..a99c97e 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.qp.strategy;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
 import org.apache.iotdb.db.qp.constant.FilterConstant.FilterType;
@@ -50,7 +50,7 @@ import java.time.ZoneId;
 import java.util.HashSet;
 import java.util.Set;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.TIME;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.TIME;
 
 /** LogicalGenerator. */
 public class LogicalGenerator {
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/utils/GroupByLevelController.java b/server/src/main/java/org/apache/iotdb/db/qp/utils/GroupByLevelController.java
index e8815b4..fb301dd 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/utils/GroupByLevelController.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/utils/GroupByLevelController.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.qp.utils;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
 import org.apache.iotdb.db.qp.logical.crud.QueryOperator;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/control/QueryTimeManager.java b/server/src/main/java/org/apache/iotdb/db/query/control/QueryTimeManager.java
index 67c58cf..e855532 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/control/QueryTimeManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/control/QueryTimeManager.java
@@ -19,12 +19,12 @@
 
 package org.apache.iotdb.db.query.control;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.query.QueryTimeoutRuntimeException;
 import org.apache.iotdb.db.query.context.QueryContext;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.ServiceType;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/control/SessionManager.java b/server/src/main/java/org/apache/iotdb/db/query/control/SessionManager.java
index 7e1861e..17e0e4d 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/control/SessionManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/control/SessionManager.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.query.control;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.query.dataset.UDTFDataSet;
 import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/control/SessionTimeoutManager.java b/server/src/main/java/org/apache/iotdb/db/query/control/SessionTimeoutManager.java
index 8e907ee..6959aa9 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/control/SessionTimeoutManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/control/SessionTimeoutManager.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.query.control;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.service.basic.ServiceProvider;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/NonAlignEngineDataSet.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/NonAlignEngineDataSet.java
index 933ce8b..5a3ed07 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/NonAlignEngineDataSet.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/NonAlignEngineDataSet.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.query.dataset;
 
-import org.apache.iotdb.db.concurrent.WrappedRunnable;
+import org.apache.iotdb.commons.concurrent.WrappedRunnable;
 import org.apache.iotdb.db.metadata.path.PartialPath;
 import org.apache.iotdb.db.query.control.QueryTimeManager;
 import org.apache.iotdb.db.query.pool.RawQueryReadTaskPoolManager;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/RawQueryDataSetWithoutValueFilter.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/RawQueryDataSetWithoutValueFilter.java
index 24cf5b4..c744490 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/RawQueryDataSetWithoutValueFilter.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/RawQueryDataSetWithoutValueFilter.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.query.dataset;
 
-import org.apache.iotdb.db.concurrent.WrappedRunnable;
+import org.apache.iotdb.commons.concurrent.WrappedRunnable;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.metadata.path.AlignedPath;
 import org.apache.iotdb.db.metadata.path.PartialPath;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowDevicesDataSet.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowDevicesDataSet.java
index 1d74b8a..e6be00f 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowDevicesDataSet.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowDevicesDataSet.java
@@ -31,9 +31,9 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_DEVICES;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_IS_ALIGNED;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_STORAGE_GROUP;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_DEVICES;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_IS_ALIGNED;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_STORAGE_GROUP;
 
 public class ShowDevicesDataSet extends ShowDataSet {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowTimeseriesDataSet.java b/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowTimeseriesDataSet.java
index bef0509..b6e177e 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowTimeseriesDataSet.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/dataset/ShowTimeseriesDataSet.java
@@ -34,14 +34,14 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_ATTRIBUTES;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_STORAGE_GROUP;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TAGS;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_ALIAS;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_COMPRESSION;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_DATATYPE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_ENCODING;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_ATTRIBUTES;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_STORAGE_GROUP;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TAGS;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_ALIAS;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_COMPRESSION;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_DATATYPE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_ENCODING;
 
 public class ShowTimeseriesDataSet extends ShowDataSet {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java b/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java
index 2f4e65e..0ce0b25 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/executor/AggregationExecutor.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.query.executor;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.querycontext.QueryDataSource;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java b/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
index cd26ee8..0fffeec 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
@@ -63,9 +63,9 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_DATATYPE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_VALUE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_DATATYPE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_VALUE;
 
 public class LastQueryExecutor {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java
index 39c1267..e4a91aa 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/expression/unary/FunctionExpression.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.query.expression.unary;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.query.LogicalOptimizeException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/pool/QueryTaskManager.java b/server/src/main/java/org/apache/iotdb/db/query/pool/QueryTaskManager.java
index f251e28..61cfe08 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/pool/QueryTaskManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/pool/QueryTaskManager.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.query.pool;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.rescon.AbstractPoolManager;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/pool/RawQueryReadTaskPoolManager.java b/server/src/main/java/org/apache/iotdb/db/query/pool/RawQueryReadTaskPoolManager.java
index b68acbb..6d95727 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/pool/RawQueryReadTaskPoolManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/pool/RawQueryReadTaskPoolManager.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.query.pool;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.rescon.AbstractPoolManager;
 import org.apache.iotdb.db.service.metrics.Metric;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/row/SerializableRowRecordList.java b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/row/SerializableRowRecordList.java
index eab6af6..f49e449 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/row/SerializableRowRecordList.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/row/SerializableRowRecordList.java
@@ -32,7 +32,7 @@ import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.List;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.MB;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.MB;
 
 public class SerializableRowRecordList implements SerializableList {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBinaryTVList.java b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBinaryTVList.java
index 7553d47..80f3fc5 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBinaryTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBinaryTVList.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.MB;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.MB;
 
 public class SerializableBinaryTVList extends SerializableTVList {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBooleanTVList.java b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBooleanTVList.java
index f2ed81c..b19246e 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBooleanTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableBooleanTVList.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.MB;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.MB;
 
 public class SerializableBooleanTVList extends SerializableTVList {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableDoubleTVList.java b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableDoubleTVList.java
index 3db3326..f9d2885 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableDoubleTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableDoubleTVList.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.MB;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.MB;
 
 public class SerializableDoubleTVList extends SerializableTVList {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableFloatTVList.java b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableFloatTVList.java
index b7ec608..5415ad6 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableFloatTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableFloatTVList.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.MB;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.MB;
 
 public class SerializableFloatTVList extends SerializableTVList {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableIntTVList.java b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableIntTVList.java
index 28454dd..86a0106 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableIntTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableIntTVList.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.MB;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.MB;
 
 public class SerializableIntTVList extends SerializableTVList {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableLongTVList.java b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableLongTVList.java
index c4cc3ec..e3300b4 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableLongTVList.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/datastructure/tv/SerializableLongTVList.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.MB;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.MB;
 
 public class SerializableLongTVList extends SerializableTVList {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/service/TemporaryQueryDataFileService.java b/server/src/main/java/org/apache/iotdb/db/query/udf/service/TemporaryQueryDataFileService.java
index 0c59d8e..2c3f19e 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/service/TemporaryQueryDataFileService.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/service/TemporaryQueryDataFileService.java
@@ -19,12 +19,12 @@
 
 package org.apache.iotdb.db.query.udf.service;
 
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.query.udf.datastructure.SerializableList.SerializationRecorder;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.ServiceType;
 
 import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFClassLoaderManager.java b/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFClassLoaderManager.java
index 08aba8a..6af5c3b 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFClassLoaderManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFClassLoaderManager.java
@@ -19,11 +19,11 @@
 
 package org.apache.iotdb.db.query.udf.service;
 
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
-import org.apache.iotdb.db.exception.StartupException;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.ServiceType;
 
 import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
diff --git a/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationService.java b/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationService.java
index a743be5..db832a3 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationService.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/udf/service/UDFRegistrationService.java
@@ -19,18 +19,18 @@
 
 package org.apache.iotdb.db.query.udf.service;
 
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.exception.UDFRegistrationException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.db.query.expression.unary.FunctionExpression;
 import org.apache.iotdb.db.query.udf.api.UDF;
 import org.apache.iotdb.db.query.udf.builtin.BuiltinFunction;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.ServiceType;
 import org.apache.iotdb.tsfile.fileSystem.FSFactoryProducer;
 
 import org.apache.commons.io.FileUtils;
diff --git a/server/src/main/java/org/apache/iotdb/db/rescon/SystemInfo.java b/server/src/main/java/org/apache/iotdb/db/rescon/SystemInfo.java
index 334bb96..559fbd0 100644
--- a/server/src/main/java/org/apache/iotdb/db/rescon/SystemInfo.java
+++ b/server/src/main/java/org/apache/iotdb/db/rescon/SystemInfo.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.rescon;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.flush.FlushManager;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/InfluxDBRPCService.java b/server/src/main/java/org/apache/iotdb/db/service/InfluxDBRPCService.java
index 6e9f580..146a133 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/InfluxDBRPCService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/InfluxDBRPCService.java
@@ -19,12 +19,13 @@
 
 package org.apache.iotdb.db.service;
 
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.exception.runtime.RPCServiceException;
+import org.apache.iotdb.commons.service.ServiceType;
+import org.apache.iotdb.commons.service.ThriftService;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.runtime.RPCServiceException;
-import org.apache.iotdb.db.service.thrift.ThriftService;
-import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
 import org.apache.iotdb.db.service.thrift.handler.InfluxDBServiceThriftHandler;
 import org.apache.iotdb.db.service.thrift.impl.InfluxDBServiceImpl;
 import org.apache.iotdb.protocol.influxdb.rpc.thrift.InfluxDBService.Processor;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
index f88297f..53f6361 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
@@ -18,9 +18,13 @@
  */
 package org.apache.iotdb.db.service;
 
-import org.apache.iotdb.db.concurrent.IoTDBDefaultThreadExceptionHandler;
+import org.apache.iotdb.commons.concurrent.IoTDBDefaultThreadExceptionHandler;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.JMXService;
+import org.apache.iotdb.commons.service.RegisterManager;
+import org.apache.iotdb.commons.service.StartupChecks;
 import org.apache.iotdb.db.conf.IoTDBConfigCheck;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.rest.IoTDBRestServiceCheck;
 import org.apache.iotdb.db.conf.rest.IoTDBRestServiceDescriptor;
@@ -31,7 +35,6 @@ import org.apache.iotdb.db.engine.cq.ContinuousQueryService;
 import org.apache.iotdb.db.engine.flush.FlushManager;
 import org.apache.iotdb.db.engine.trigger.service.TriggerRegistrationService;
 import org.apache.iotdb.db.exception.ConfigurationException;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.metadata.SchemaEngine;
 import org.apache.iotdb.db.protocol.influxdb.meta.InfluxDBMetaManager;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/MQTTService.java b/server/src/main/java/org/apache/iotdb/db/service/MQTTService.java
index 833895e..2e35ba9 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/MQTTService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/MQTTService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.iotdb.db.service;
 
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.protocol.mqtt.BrokerAuthenticator;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/RPCService.java b/server/src/main/java/org/apache/iotdb/db/service/RPCService.java
index fd42fe2..dc0ee39 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/RPCService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/RPCService.java
@@ -18,13 +18,14 @@
  */
 package org.apache.iotdb.db.service;
 
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.exception.runtime.RPCServiceException;
+import org.apache.iotdb.commons.service.ServiceType;
+import org.apache.iotdb.commons.service.ThriftService;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.runtime.RPCServiceException;
 import org.apache.iotdb.db.service.thrift.ProcessorWithMetrics;
-import org.apache.iotdb.db.service.thrift.ThriftService;
-import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
 import org.apache.iotdb.db.service.thrift.handler.RPCServiceThriftHandler;
 import org.apache.iotdb.db.service.thrift.impl.TSServiceImpl;
 import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/RPCServiceMBean.java b/server/src/main/java/org/apache/iotdb/db/service/RPCServiceMBean.java
index ef8d023..ea2f0bf 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/RPCServiceMBean.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/RPCServiceMBean.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.service;
 
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.exception.StartupException;
 
 public interface RPCServiceMBean {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/service/SettleService.java b/server/src/main/java/org/apache/iotdb/db/service/SettleService.java
index cee74d1..0b87377 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/SettleService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/SettleService.java
@@ -19,8 +19,10 @@
 
 package org.apache.iotdb.db.service;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.settle.SettleLog;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/StaticResps.java b/server/src/main/java/org/apache/iotdb/db/service/StaticResps.java
index f8944d1..6958c47 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/StaticResps.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/StaticResps.java
@@ -27,9 +27,9 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import java.util.Arrays;
 import java.util.List;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_TIMESERIES_DATATYPE;
-import static org.apache.iotdb.db.conf.IoTDBConstant.COLUMN_VALUE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_TIMESERIES_DATATYPE;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.COLUMN_VALUE;
 
 /** Static responses that won't change for all requests. */
 public class StaticResps {
diff --git a/server/src/main/java/org/apache/iotdb/db/service/UpgradeSevice.java b/server/src/main/java/org/apache/iotdb/db/service/UpgradeSevice.java
index ff0004e..1e11c8f 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/UpgradeSevice.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/UpgradeSevice.java
@@ -18,7 +18,9 @@
  */
 package org.apache.iotdb.db.service;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.upgrade.UpgradeLog;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/basic/QueryFrequencyRecorder.java b/server/src/main/java/org/apache/iotdb/db/service/basic/QueryFrequencyRecorder.java
index 0c5cf6f..f69d274 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/basic/QueryFrequencyRecorder.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/basic/QueryFrequencyRecorder.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.service.basic;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 
 import org.slf4j.Logger;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/basic/ServiceProvider.java b/server/src/main/java/org/apache/iotdb/db/service/basic/ServiceProvider.java
index 78a9699..45a42e0 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/basic/ServiceProvider.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/basic/ServiceProvider.java
@@ -19,12 +19,12 @@
 
 package org.apache.iotdb.db.service.basic;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.AuthorityChecker;
 import org.apache.iotdb.db.auth.authorizer.BasicAuthorizer;
 import org.apache.iotdb.db.auth.authorizer.IAuthorizer;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.OperationType;
 import org.apache.iotdb.db.exception.StorageEngineException;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/MetricsService.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/MetricsService.java
index b46d560..f8fb567 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/MetricsService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/MetricsService.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.db.service.metrics;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.JMXService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
-import org.apache.iotdb.db.exception.StartupException;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.JMXService;
-import org.apache.iotdb.db.service.ServiceType;
 import org.apache.iotdb.db.utils.FileUtils;
 import org.apache.iotdb.metrics.MetricService;
 import org.apache.iotdb.metrics.config.MetricConfig;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/MetricsServiceMBean.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/MetricsServiceMBean.java
index 9394db2..458f1e0 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/MetricsServiceMBean.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/MetricsServiceMBean.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.service.metrics;
 
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.exception.StartupException;
 
 public interface MetricsServiceMBean {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
index 7960604..be520f4 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/TSServiceImpl.java
@@ -18,15 +18,15 @@
  */
 package org.apache.iotdb.db.service.thrift.impl;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.authorizer.BasicAuthorizer;
 import org.apache.iotdb.db.auth.authorizer.IAuthorizer;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.OperationType;
 import org.apache.iotdb.db.engine.selectinto.InsertTabletPlansIterator;
-import org.apache.iotdb.db.exception.IoTDBException;
 import org.apache.iotdb.db.exception.QueryInBatchStatementException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
diff --git a/server/src/main/java/org/apache/iotdb/db/sync/conf/SyncSenderDescriptor.java b/server/src/main/java/org/apache/iotdb/db/sync/conf/SyncSenderDescriptor.java
index a4b4a63..c39af7f 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/conf/SyncSenderDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/conf/SyncSenderDescriptor.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.sync.conf;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/server/src/main/java/org/apache/iotdb/db/sync/receiver/SyncServerManager.java b/server/src/main/java/org/apache/iotdb/db/sync/receiver/SyncServerManager.java
index a197397..fffb846 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/receiver/SyncServerManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/receiver/SyncServerManager.java
@@ -18,13 +18,13 @@
  */
 package org.apache.iotdb.db.sync.receiver;
 
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.ServiceType;
+import org.apache.iotdb.commons.service.ThriftService;
+import org.apache.iotdb.commons.service.ThriftServiceThread;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.StartupException;
-import org.apache.iotdb.db.service.ServiceType;
-import org.apache.iotdb.db.service.thrift.ThriftService;
-import org.apache.iotdb.db.service.thrift.ThriftServiceThread;
 import org.apache.iotdb.db.sync.receiver.load.FileLoaderManager;
 import org.apache.iotdb.db.sync.receiver.recover.SyncReceiverLogAnalyzer;
 import org.apache.iotdb.db.sync.receiver.transfer.SyncServiceImpl;
diff --git a/server/src/main/java/org/apache/iotdb/db/sync/receiver/SyncServerManagerMBean.java b/server/src/main/java/org/apache/iotdb/db/sync/receiver/SyncServerManagerMBean.java
index 3992693..e82ba05 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/receiver/SyncServerManagerMBean.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/receiver/SyncServerManagerMBean.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.sync.receiver;
 
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.exception.StartupException;
 
 public interface SyncServerManagerMBean {
 
diff --git a/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderManager.java b/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderManager.java
index 82d24ad..03e0e11 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderManager.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.sync.receiver.load;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.exception.SyncDeviceOwnerConflictException;
diff --git a/server/src/main/java/org/apache/iotdb/db/sync/receiver/transfer/SyncServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/sync/receiver/transfer/SyncServiceImpl.java
index 08f78d3..06861383 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/receiver/transfer/SyncServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/receiver/transfer/SyncServiceImpl.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.sync.receiver.transfer;
 
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
diff --git a/server/src/main/java/org/apache/iotdb/db/sync/sender/manage/SyncFileManager.java b/server/src/main/java/org/apache/iotdb/db/sync/sender/manage/SyncFileManager.java
index 74e9a96..5d7d00b 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/sender/manage/SyncFileManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/sender/manage/SyncFileManager.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.sync.sender.manage;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.modification.ModificationFile;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.service.IoTDB;
diff --git a/server/src/main/java/org/apache/iotdb/db/sync/sender/transfer/SyncClient.java b/server/src/main/java/org/apache/iotdb/db/sync/sender/transfer/SyncClient.java
index 7e3b191..c155725 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/sender/transfer/SyncClient.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/sender/transfer/SyncClient.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.sync.sender.transfer;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
diff --git a/server/src/main/java/org/apache/iotdb/db/tools/TsFileSplitTool.java b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSplitTool.java
index 703713e..c928b6a 100644
--- a/server/src/main/java/org/apache/iotdb/db/tools/TsFileSplitTool.java
+++ b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSplitTool.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.tools;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.modification.ModificationFile;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/AuthUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/AuthUtils.java
index 7430991..a3e8018 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/AuthUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/AuthUtils.java
@@ -18,10 +18,10 @@
  */
 package org.apache.iotdb.db.utils;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.entity.PathPrivilege;
 import org.apache.iotdb.db.auth.entity.PrivilegeType;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.security.encrypt.AsymmetricEncryptFactory;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java
index 3fd2799..cd218ce 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/CommonUtils.java
@@ -22,7 +22,6 @@ import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.qp.constant.SQLConstant;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.fileSystem.FSFactoryProducer;
 import org.apache.iotdb.tsfile.utils.Binary;
 
 import com.google.common.base.Throwables;
@@ -37,61 +36,13 @@ import io.airlift.airline.ParseOptionMissingException;
 import io.airlift.airline.ParseOptionMissingValueException;
 import org.apache.commons.lang3.StringUtils;
 
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.List;
-import java.util.stream.Stream;
 
 @SuppressWarnings("java:S106") // for console outputs
 public class CommonUtils {
 
-  private static final int CPUS = Runtime.getRuntime().availableProcessors();
-
-  /** Default executor pool maximum size. */
-  public static final int MAX_EXECUTOR_POOL_SIZE = Math.max(100, getCpuCores() * 5);
-
   private CommonUtils() {}
 
-  /**
-   * get JDK version.
-   *
-   * @return JDK version (int type)
-   */
-  public static int getJdkVersion() {
-    String[] javaVersionElements = System.getProperty("java.version").split("\\.");
-    if (Integer.parseInt(javaVersionElements[0]) == 1) {
-      return Integer.parseInt(javaVersionElements[1]);
-    } else {
-      return Integer.parseInt(javaVersionElements[0]);
-    }
-  }
-
-  /**
-   * NOTICE: This method is currently used only for data dir, thus using FSFactory to get file
-   *
-   * @param dir directory path
-   * @return
-   */
-  public static long getUsableSpace(String dir) {
-    File dirFile = FSFactoryProducer.getFSFactory().getFile(dir);
-    dirFile.mkdirs();
-    return dirFile.getFreeSpace();
-  }
-
-  public static boolean hasSpace(String dir) {
-    return getUsableSpace(dir) > 0;
-  }
-
-  public static long getOccupiedSpace(String folderPath) throws IOException {
-    Path folder = Paths.get(folderPath);
-    try (Stream<Path> s = Files.walk(folder)) {
-      return s.filter(p -> p.toFile().isFile()).mapToLong(p -> p.toFile().length()).sum();
-    }
-  }
-
   public static Object parseValue(TSDataType dataType, String value) throws QueryProcessException {
     try {
       if ("null".equals(value) || "NULL".equals(value)) {
@@ -171,14 +122,6 @@ public class CommonUtils {
     throw new QueryProcessException("The BOOLEAN should be true/TRUE, false/FALSE or 0/1");
   }
 
-  public static int getCpuCores() {
-    return CPUS;
-  }
-
-  public static int getMaxExecutorPoolSize() {
-    return MAX_EXECUTOR_POOL_SIZE;
-  }
-
   public static int runCli(
       List<Class<? extends Runnable>> commands,
       String[] args,
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/ErrorHandlingUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/ErrorHandlingUtils.java
index edee748..6569736 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/ErrorHandlingUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/ErrorHandlingUtils.java
@@ -18,9 +18,9 @@
  */
 package org.apache.iotdb.db.utils;
 
+import org.apache.iotdb.commons.exception.IoTDBException;
 import org.apache.iotdb.db.conf.OperationType;
 import org.apache.iotdb.db.exception.BatchProcessException;
-import org.apache.iotdb.db.exception.IoTDBException;
 import org.apache.iotdb.db.exception.QueryInBatchStatementException;
 import org.apache.iotdb.db.exception.StorageGroupNotReadyException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java
index 8bb8976..854fb03 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/MemUtils.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.utils;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.qp.physical.crud.InsertTabletPlan;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/OpenFileNumUtil.java b/server/src/main/java/org/apache/iotdb/db/utils/OpenFileNumUtil.java
index dfeb18c..0563aa1 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/OpenFileNumUtil.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/OpenFileNumUtil.java
@@ -19,8 +19,8 @@
 
 package org.apache.iotdb.db.utils;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/ThreadUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/ThreadUtils.java
index 50288af..1db7754 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/ThreadUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/ThreadUtils.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.utils;
 
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.exception.runtime.StorageEngineFailureException;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/windowing/runtime/WindowEvaluationTask.java b/server/src/main/java/org/apache/iotdb/db/utils/windowing/runtime/WindowEvaluationTask.java
index 053296b..09686f4 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/windowing/runtime/WindowEvaluationTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/windowing/runtime/WindowEvaluationTask.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.utils.windowing.runtime;
 
-import org.apache.iotdb.db.concurrent.WrappedRunnable;
+import org.apache.iotdb.commons.concurrent.WrappedRunnable;
 import org.apache.iotdb.db.utils.windowing.api.Evaluator;
 import org.apache.iotdb.db.utils.windowing.api.Window;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/windowing/runtime/WindowEvaluationTaskPoolManager.java b/server/src/main/java/org/apache/iotdb/db/utils/windowing/runtime/WindowEvaluationTaskPoolManager.java
index afa0289..7c5a97e 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/windowing/runtime/WindowEvaluationTaskPoolManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/windowing/runtime/WindowEvaluationTaskPoolManager.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.utils.windowing.runtime;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.db.concurrent.IoTThreadFactory;
-import org.apache.iotdb.db.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.IoTThreadFactory;
+import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.rescon.AbstractPoolManager;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java b/server/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java
index 3a3dc08..6d2eb13 100644
--- a/server/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java
@@ -18,12 +18,12 @@
  */
 package org.apache.iotdb.db.writelog.manager;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.exception.StartupException;
+import org.apache.iotdb.commons.service.IService;
+import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.StartupException;
-import org.apache.iotdb.db.service.IService;
-import org.apache.iotdb.db.service.ServiceType;
 import org.apache.iotdb.db.writelog.node.ExclusiveWriteLogNode;
 import org.apache.iotdb.db.writelog.node.WriteLogNode;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java b/server/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java
index 79e12b8..5283caf 100644
--- a/server/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/writelog/node/ExclusiveWriteLogNode.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.writelog.node;
 
-import org.apache.iotdb.db.concurrent.IoTDBThreadPoolFactory;
+import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
@@ -47,7 +47,7 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.ReentrantLock;
 
-import static org.apache.iotdb.db.concurrent.ThreadName.WAL_FLUSH;
+import static org.apache.iotdb.commons.concurrent.ThreadName.WAL_FLUSH;
 
 /** This WriteLogNode is used to manage insert ahead logs of a TsFile. */
 public class ExclusiveWriteLogNode implements WriteLogNode, Comparable<ExclusiveWriteLogNode> {
diff --git a/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java b/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
index a9cba70..8790e06 100644
--- a/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
+++ b/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.writelog.recover;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.memtable.IMemTable;
 import org.apache.iotdb.db.engine.memtable.IWritableMemChunk;
diff --git a/server/src/test/java/org/apache/iotdb/db/conf/IoTDBDescriptorTest.java b/server/src/test/java/org/apache/iotdb/db/conf/IoTDBDescriptorTest.java
index 40f1b22..76d68a5 100644
--- a/server/src/test/java/org/apache/iotdb/db/conf/IoTDBDescriptorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/conf/IoTDBDescriptorTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.iotdb.db.conf;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/server/src/test/java/org/apache/iotdb/db/conf/directories/strategy/DirectoryStrategyTest.java b/server/src/test/java/org/apache/iotdb/db/conf/directories/strategy/DirectoryStrategyTest.java
index aa9d4f2..cdbcdad 100644
--- a/server/src/test/java/org/apache/iotdb/db/conf/directories/strategy/DirectoryStrategyTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/conf/directories/strategy/DirectoryStrategyTest.java
@@ -18,9 +18,9 @@
  */
 package org.apache.iotdb.db.conf.directories.strategy;
 
+import org.apache.iotdb.commons.utils.JVMCommonUtils;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
-import org.apache.iotdb.db.utils.CommonUtils;
 
 import org.junit.After;
 import org.junit.Before;
@@ -44,7 +44,7 @@ import static org.junit.Assert.fail;
 
 @RunWith(PowerMockRunner.class)
 @PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "org.w3c.*"})
-@PrepareForTest(CommonUtils.class)
+@PrepareForTest(JVMCommonUtils.class)
 public class DirectoryStrategyTest {
 
   List<String> dataDirList;
@@ -61,13 +61,13 @@ public class DirectoryStrategyTest {
     fullDirIndexSet.add(1);
     fullDirIndexSet.add(3);
 
-    PowerMockito.mockStatic(CommonUtils.class);
+    PowerMockito.mockStatic(JVMCommonUtils.class);
     for (int i = 0; i < dataDirList.size(); i++) {
       boolean res = !fullDirIndexSet.contains(i);
-      PowerMockito.when(CommonUtils.hasSpace(dataDirList.get(i))).thenReturn(res);
-      PowerMockito.when(CommonUtils.getUsableSpace(dataDirList.get(i)))
+      PowerMockito.when(JVMCommonUtils.hasSpace(dataDirList.get(i))).thenReturn(res);
+      PowerMockito.when(JVMCommonUtils.getUsableSpace(dataDirList.get(i)))
           .thenReturn(res ? (long) (i + 1) : 0L);
-      PowerMockito.when(CommonUtils.getOccupiedSpace(dataDirList.get(i)))
+      PowerMockito.when(JVMCommonUtils.getOccupiedSpace(dataDirList.get(i)))
           .thenReturn(res ? (long) (i + 1) : Long.MAX_VALUE);
     }
   }
@@ -102,7 +102,7 @@ public class DirectoryStrategyTest {
       assertEquals(maxIndex, maxDiskUsableSpaceFirstStrategy.nextFolderIndex());
     }
 
-    PowerMockito.when(CommonUtils.getUsableSpace(dataDirList.get(maxIndex))).thenReturn(0L);
+    PowerMockito.when(JVMCommonUtils.getUsableSpace(dataDirList.get(maxIndex))).thenReturn(0L);
     maxIndex = getIndexOfMaxSpace();
     for (int i = 0; i < dataDirList.size(); i++) {
       assertEquals(maxIndex, maxDiskUsableSpaceFirstStrategy.nextFolderIndex());
@@ -113,7 +113,7 @@ public class DirectoryStrategyTest {
     int index = -1;
     long maxSpace = -1;
     for (int i = 0; i < dataDirList.size(); i++) {
-      long space = CommonUtils.getUsableSpace(dataDirList.get(i));
+      long space = JVMCommonUtils.getUsableSpace(dataDirList.get(i));
       if (maxSpace < space) {
         index = i;
         maxSpace = space;
@@ -134,7 +134,7 @@ public class DirectoryStrategyTest {
       assertEquals(minIndex, minFolderOccupiedSpaceFirstStrategy.nextFolderIndex());
     }
 
-    PowerMockito.when(CommonUtils.getOccupiedSpace(dataDirList.get(minIndex)))
+    PowerMockito.when(JVMCommonUtils.getOccupiedSpace(dataDirList.get(minIndex)))
         .thenReturn(Long.MAX_VALUE);
     minIndex = getIndexOfMinOccupiedSpace();
     for (int i = 0; i < dataDirList.size(); i++) {
@@ -146,7 +146,7 @@ public class DirectoryStrategyTest {
     int index = -1;
     long minOccupied = Long.MAX_VALUE;
     for (int i = 0; i < dataDirList.size(); i++) {
-      long space = CommonUtils.getOccupiedSpace(dataDirList.get(i));
+      long space = JVMCommonUtils.getOccupiedSpace(dataDirList.get(i));
       if (minOccupied > space) {
         index = i;
         minOccupied = space;
@@ -166,7 +166,7 @@ public class DirectoryStrategyTest {
     }
 
     int newFullIndex = randomOnDiskUsableSpaceStrategy.nextFolderIndex();
-    PowerMockito.when(CommonUtils.getUsableSpace(dataDirList.get(newFullIndex))).thenReturn(0L);
+    PowerMockito.when(JVMCommonUtils.getUsableSpace(dataDirList.get(newFullIndex))).thenReturn(0L);
     for (int i = 0; i < dataDirList.size(); i++) {
       int index = randomOnDiskUsableSpaceStrategy.nextFolderIndex();
       assertFalse(fullDirIndexSet.contains(index));
@@ -177,7 +177,7 @@ public class DirectoryStrategyTest {
   @Test
   public void testAllDiskFull() {
     for (int i = 0; i < dataDirList.size(); i++) {
-      PowerMockito.when(CommonUtils.hasSpace(dataDirList.get(i))).thenReturn(false);
+      PowerMockito.when(JVMCommonUtils.hasSpace(dataDirList.get(i))).thenReturn(false);
     }
 
     SequenceStrategy sequenceStrategy = new SequenceStrategy();
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/cache/ChunkCacheTest.java b/server/src/test/java/org/apache/iotdb/db/engine/cache/ChunkCacheTest.java
index b2074b7..5c66149 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/cache/ChunkCacheTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/cache/ChunkCacheTest.java
@@ -53,7 +53,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/CompactionUtilsTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/CompactionUtilsTest.java
index 11ac1e9..a6aab11 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/CompactionUtilsTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/CompactionUtilsTest.java
@@ -53,7 +53,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 import static org.junit.Assert.assertEquals;
 
 public class CompactionUtilsTest extends AbstractCompactionTest {
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionExceptionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionExceptionTest.java
index 52fe364..d26301b 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionExceptionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionExceptionTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction.cross;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.AbstractCompactionTest;
 import org.apache.iotdb.db.engine.compaction.CompactionUtils;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeTest.java
index 94408c7..3634d92 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeTest.java
@@ -50,7 +50,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 
 abstract class MergeTest {
 
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeUpgradeTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeUpgradeTest.java
index 1961da1..2f3bcff 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeUpgradeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/MergeUpgradeTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.cross;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.manage.CrossSpaceCompactionResource;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.selector.RewriteCompactionFileSelector;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java
index 9ccf5aa..7d78a71 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCompactionFileSelectorTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.cross;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.manage.CrossSpaceCompactionResource;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionRecoverTest.java
index aa38a15..bdcde31 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionRecoverTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionRecoverTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction.cross;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.compaction.AbstractCompactionTest;
 import org.apache.iotdb.db.engine.compaction.CompactionTaskManager;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionTest.java
index 6e2de99..12e53c3 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/cross/RewriteCrossSpaceCompactionTest.java
@@ -61,8 +61,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.CROSS_COMPACTION_TMP_FILE_SUFFIX;
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.CROSS_COMPACTION_TMP_FILE_SUFFIX;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 import static org.junit.Assert.assertEquals;
 
 public class RewriteCrossSpaceCompactionTest extends AbstractCompactionTest {
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/AbstractInnerSpaceCompactionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/AbstractInnerSpaceCompactionTest.java
index 213b5fc..5dbb932 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/AbstractInnerSpaceCompactionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/AbstractInnerSpaceCompactionTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.inner;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
@@ -57,7 +57,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 
 public abstract class AbstractInnerSpaceCompactionTest {
   protected static final Logger logger =
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionMoreDataTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionMoreDataTest.java
index 7ff8025..253d9af 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionMoreDataTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionMoreDataTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.inner;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.compaction.CompactionScheduler;
 import org.apache.iotdb.db.engine.compaction.CompactionTaskManager;
@@ -56,7 +56,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 import static org.junit.Assert.assertEquals;
 
 public class InnerCompactionMoreDataTest extends InnerCompactionTest {
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionTest.java
index 02d7fa6..f388d70 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerCompactionTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.inner;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
@@ -52,7 +52,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 
 public abstract class InnerCompactionTest {
 
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionUtilsOldTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionUtilsOldTest.java
index 1097f48..234cb88 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionUtilsOldTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionUtilsOldTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.inner;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.compaction.inner.utils.InnerSpaceCompactionUtils;
 import org.apache.iotdb.db.engine.compaction.utils.log.CompactionLogger;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java
index 718a965..666ccbb 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionRecoverTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.inner.sizetiered;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
 import org.apache.iotdb.db.engine.compaction.CompactionTaskManager;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTest.java
index b5a40be..d61d87b 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.inner.sizetiered;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
@@ -51,7 +51,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 
 public class SizeTieredCompactionTest {
   static final String COMPACTION_TEST_SG = "root.compactionTest";
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/RewriteCrossSpaceCompactionRecoverCompatibleTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/RewriteCrossSpaceCompactionRecoverCompatibleTest.java
index 51dda8a..16f7817 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/RewriteCrossSpaceCompactionRecoverCompatibleTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/RewriteCrossSpaceCompactionRecoverCompatibleTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.engine.compaction.recover;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.engine.compaction.AbstractCompactionTest;
 import org.apache.iotdb.db.engine.compaction.CompactionTaskManager;
 import org.apache.iotdb.db.engine.compaction.cross.rewrite.task.RewriteCrossCompactionRecoverTask;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java
index 11dd888..7e8253e 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.engine.compaction.recover;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.compaction.inner.sizetiered.SizeTieredCompactionRecoverTask;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionClearUtils.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionClearUtils.java
index c28a708..0280c04 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionClearUtils.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionClearUtils.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.utils;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.cache.BloomFilterCache;
 import org.apache.iotdb.db.engine.cache.ChunkCache;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionFileGeneratorUtils.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionFileGeneratorUtils.java
index dc9d345..0e3475a 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionFileGeneratorUtils.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/utils/CompactionFileGeneratorUtils.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.compaction.utils;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.modification.Deletion;
 import org.apache.iotdb.db.engine.modification.ModificationFile;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java
index 7249cf2..f52b38d 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.engine.storagegroup;
 
+import org.apache.iotdb.commons.exception.ShutdownException;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.constant.TestConstant;
@@ -28,7 +29,6 @@ import org.apache.iotdb.db.engine.flush.FlushManager;
 import org.apache.iotdb.db.engine.flush.TsFileFlushPolicy;
 import org.apache.iotdb.db.engine.querycontext.QueryDataSource;
 import org.apache.iotdb.db.engine.querycontext.ReadOnlyMemChunk;
-import org.apache.iotdb.db.exception.ShutdownException;
 import org.apache.iotdb.db.exception.StorageGroupProcessorException;
 import org.apache.iotdb.db.exception.TriggerExecutionException;
 import org.apache.iotdb.db.exception.WriteProcessException;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
index 4265858..22ef7c7 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
@@ -20,7 +20,7 @@
 
 package org.apache.iotdb.db.engine.storagegroup;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.flush.TsFileFlushPolicy.DirectFlushPolicy;
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TsFileManagerTest.java b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TsFileManagerTest.java
index cb6137b..1342156 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TsFileManagerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TsFileManagerTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.engine.storagegroup;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/upgrade/MetadataUpgradeTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/upgrade/MetadataUpgradeTest.java
index 0af7e7c..746b1e1 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/upgrade/MetadataUpgradeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/upgrade/MetadataUpgradeTest.java
@@ -67,7 +67,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_ROOT;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_ROOT;
 
 public class MetadataUpgradeTest {
 
diff --git a/server/src/test/java/org/apache/iotdb/db/protocol/rest/IoTDBRestServiceIT.java b/server/src/test/java/org/apache/iotdb/db/protocol/rest/IoTDBRestServiceIT.java
index d492327..d5aae26 100644
--- a/server/src/test/java/org/apache/iotdb/db/protocol/rest/IoTDBRestServiceIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/protocol/rest/IoTDBRestServiceIT.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.protocol.rest;
 
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.db.service.RPCService;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 
diff --git a/server/src/test/java/org/apache/iotdb/db/qp/PlannerTest.java b/server/src/test/java/org/apache/iotdb/db/qp/PlannerTest.java
index ef50aa0..d4f54d8 100644
--- a/server/src/test/java/org/apache/iotdb/db/qp/PlannerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/qp/PlannerTest.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.qp;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.auth.entity.PrivilegeType;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.metadata.IllegalPathException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
diff --git a/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java b/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java
index 191e044..f5938c5 100644
--- a/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java
+++ b/server/src/test/java/org/apache/iotdb/db/query/reader/series/SeriesReaderTestUtil.java
@@ -46,7 +46,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 
 public class SeriesReaderTestUtil {
 
diff --git a/server/src/test/java/org/apache/iotdb/db/rescon/ResourceManagerTest.java b/server/src/test/java/org/apache/iotdb/db/rescon/ResourceManagerTest.java
index 220eb1a..d69d320 100644
--- a/server/src/test/java/org/apache/iotdb/db/rescon/ResourceManagerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/rescon/ResourceManagerTest.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.rescon;
 
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.cache.ChunkCache;
@@ -53,7 +53,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import static org.apache.iotdb.commons.conf.IoTDBConstant.PATH_SEPARATOR;
 import static org.junit.Assert.assertEquals;
 
 public class ResourceManagerTest {
diff --git a/server/src/test/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderTest.java b/server/src/test/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderTest.java
index 8f1eabf..4fcbbe5 100644
--- a/server/src/test/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/sync/receiver/load/FileLoaderTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.sync.receiver.load;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.StorageEngine;
diff --git a/server/src/test/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzerTest.java b/server/src/test/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzerTest.java
index 75bd42d..b7aa1b6 100644
--- a/server/src/test/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/sync/receiver/recover/SyncReceiverLogAnalyzerTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.sync.receiver.recover;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.StorageEngine;
diff --git a/server/src/test/java/org/apache/iotdb/db/sync/sender/manage/SyncFileManagerTest.java b/server/src/test/java/org/apache/iotdb/db/sync/sender/manage/SyncFileManagerTest.java
index 2ec4d69..0048f10 100644
--- a/server/src/test/java/org/apache/iotdb/db/sync/sender/manage/SyncFileManagerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/sync/sender/manage/SyncFileManagerTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.sync.sender.manage;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
diff --git a/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLogAnalyzerTest.java b/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLogAnalyzerTest.java
index 8212f1e..3987a26 100644
--- a/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLogAnalyzerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLogAnalyzerTest.java
@@ -18,11 +18,11 @@
  */
 package org.apache.iotdb.db.sync.sender.recover;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.metadata.path.PartialPath;
diff --git a/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLoggerTest.java b/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLoggerTest.java
index 70dc232..09c872c 100644
--- a/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLoggerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/sync/sender/recover/SyncSenderLoggerTest.java
@@ -18,9 +18,9 @@
  */
 package org.apache.iotdb.db.sync.sender.recover;
 
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
-import org.apache.iotdb.db.exception.StartupException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.sync.conf.SyncConstant;
 import org.apache.iotdb.db.sync.conf.SyncSenderConfig;
diff --git a/server/src/test/java/org/apache/iotdb/db/sync/sender/transfer/SyncClientTest.java b/server/src/test/java/org/apache/iotdb/db/sync/sender/transfer/SyncClientTest.java
index 7c1fd3a..9d95a42 100644
--- a/server/src/test/java/org/apache/iotdb/db/sync/sender/transfer/SyncClientTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/sync/sender/transfer/SyncClientTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.sync.sender.transfer;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
diff --git a/server/src/test/java/org/apache/iotdb/db/tools/IoTDBWatermarkTest.java b/server/src/test/java/org/apache/iotdb/db/tools/IoTDBWatermarkTest.java
index d51f43e..30a0916 100644
--- a/server/src/test/java/org/apache/iotdb/db/tools/IoTDBWatermarkTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/tools/IoTDBWatermarkTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.db.tools;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.exception.query.LogicalOperatorException;
diff --git a/server/src/test/java/org/apache/iotdb/db/writelog/IoTDBLogFileSizeTest.java b/server/src/test/java/org/apache/iotdb/db/writelog/IoTDBLogFileSizeTest.java
index bf8a83a..5a6ecaa 100644
--- a/server/src/test/java/org/apache/iotdb/db/writelog/IoTDBLogFileSizeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/writelog/IoTDBLogFileSizeTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.writelog;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.db.utils.MmapUtil;
diff --git a/server/src/test/java/org/apache/iotdb/db/writelog/recover/RecoverResourceFromReaderTest.java b/server/src/test/java/org/apache/iotdb/db/writelog/recover/RecoverResourceFromReaderTest.java
index 1531b65..95ccc19 100644
--- a/server/src/test/java/org/apache/iotdb/db/writelog/recover/RecoverResourceFromReaderTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/writelog/recover/RecoverResourceFromReaderTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.writelog.recover;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
diff --git a/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java
index 7abe810..46eaa3b 100644
--- a/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.db.writelog.recover;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
diff --git a/server/src/test/resources/logback.xml b/server/src/test/resources/logback.xml
index f7972b4..896ecd7 100644
--- a/server/src/test/resources/logback.xml
+++ b/server/src/test/resources/logback.xml
@@ -41,12 +41,12 @@
     <logger name="FileMonitor" level="info"/>
     -->
     <logger name="org.apache.iotdb.db.engine.merge" level="INFO"/>
-    <logger name="org.apache.iotdb.db.service.thrift.ThriftServiceThread" level="INFO"/>
+    <logger name="org.apache.iotdb.commons.service.ThriftServiceThread" level="INFO"/>
     <logger name="org.eclipse.jetty.util.thread.QueuedThreadPool" level="INFO"/>
     <logger name="org.apache.iotdb.db.service.metrics.MetricsService" level="INFO"/>
     <logger name="org.apache.iotdb.db.engine.flush.FlushManager" level="INFO"/>
     <logger name="org.apache.iotdb.db.integration.IoTDBCompactionIT" level="INFO"/>
-    <logger name="org.apache.iotdb.db.service.RegisterManager" level="INFO"/>
+    <logger name="org.apache.iotdb.commons.service.RegisterManager" level="INFO"/>
     <logger name="org.apache.iotdb.db.service.IoTDB" level="WARN"/>
     <logger name="org.apache.iotdb.db.service.RPCService" level="INFO"/>
     <logger name="org.apache.iotdb.db.service.MQTTService" level="INFO"/>
diff --git a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionDisableMemControlIT.java b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionDisableMemControlIT.java
index b8b13bb..8bc9d19 100644
--- a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionDisableMemControlIT.java
+++ b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionDisableMemControlIT.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.session;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.rpc.IoTDBConnectionException;
diff --git a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionVectorInsertIT.java b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionVectorInsertIT.java
index c36fa1c..6f7aaef 100644
--- a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionVectorInsertIT.java
+++ b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionVectorInsertIT.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.session;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.rpc.IoTDBConnectionException;
 import org.apache.iotdb.rpc.StatementExecutionException;
diff --git a/session/src/test/java/org/apache/iotdb/session/SessionTest.java b/session/src/test/java/org/apache/iotdb/session/SessionTest.java
index 563c54e..d92f5c8 100644
--- a/session/src/test/java/org/apache/iotdb/session/SessionTest.java
+++ b/session/src/test/java/org/apache/iotdb/session/SessionTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.session;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.rpc.IoTDBConnectionException;
 import org.apache.iotdb.rpc.StatementExecutionException;
diff --git a/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolTest.java b/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolTest.java
index ff51933..2e8981d 100644
--- a/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolTest.java
+++ b/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.session.pool;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.rpc.IoTDBConnectionException;
 import org.apache.iotdb.rpc.StatementExecutionException;
diff --git a/session/src/test/java/org/apache/iotdb/session/template/TemplateUT.java b/session/src/test/java/org/apache/iotdb/session/template/TemplateUT.java
index 877e71c..dccee15 100644
--- a/session/src/test/java/org/apache/iotdb/session/template/TemplateUT.java
+++ b/session/src/test/java/org/apache/iotdb/session/template/TemplateUT.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.session.template;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.qp.physical.sys.CreateTemplatePlan;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
diff --git a/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/EnvironmentUtils.java b/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/EnvironmentUtils.java
index d01fccf..940d19b 100644
--- a/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/EnvironmentUtils.java
+++ b/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/EnvironmentUtils.java
@@ -37,7 +37,7 @@ import org.apache.iotdb.db.engine.cache.BloomFilterCache;
 import org.apache.iotdb.db.engine.cache.ChunkCache;
 import org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache;
 import org.apache.iotdb.db.engine.flush.FlushManager;
-import org.apache.iotdb.db.exception.StartupException;
+import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.control.FileReaderManager;
diff --git a/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/IoTDBTest.scala b/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/IoTDBTest.scala
index 6c2e28d..455dc1f 100644
--- a/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/IoTDBTest.scala
+++ b/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/IoTDBTest.scala
@@ -20,7 +20,6 @@
 package org.apache.iotdb.spark.db
 
 import java.io.ByteArrayOutputStream
-import org.apache.iotdb.db.conf.IoTDBConstant
 import org.apache.iotdb.db.service.IoTDB
 import org.apache.iotdb.jdbc.Config
 import org.apache.spark.sql.{SQLContext, SparkSession}
@@ -39,7 +38,7 @@ class IoTDBTest extends FunSuite with BeforeAndAfterAll {
 
   @Before
   override protected def beforeAll(): Unit = {
-    System.setProperty(IoTDBConstant.IOTDB_CONF, "src/test/resources/")
+    System.setProperty("IOTDB_CONF", "src/test/resources/")
     super.beforeAll()
 
     daemon = IoTDB.getInstance
diff --git a/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/IoTDBWriteTest.scala b/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/IoTDBWriteTest.scala
index dc59e77..444adbf 100644
--- a/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/IoTDBWriteTest.scala
+++ b/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/IoTDBWriteTest.scala
@@ -19,7 +19,6 @@
 
 package org.apache.iotdb.spark.db
 
-import org.apache.iotdb.db.conf.IoTDBConstant
 import org.apache.iotdb.db.service.IoTDB
 import org.apache.iotdb.jdbc.Config
 import org.apache.iotdb.session.Session
@@ -34,7 +33,7 @@ class IoTDBWriteTest extends FunSuite with BeforeAndAfterAll {
 
   @Before
   override protected def beforeAll(): Unit = {
-    System.setProperty(IoTDBConstant.IOTDB_CONF, "src/test/resources/")
+    System.setProperty("IOTDB_CONF", "src/test/resources/")
     super.beforeAll()
 
     daemon = IoTDB.getInstance
diff --git a/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/unit/DataFrameToolsTest.scala b/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/unit/DataFrameToolsTest.scala
index f38c365..000ebd6 100644
--- a/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/unit/DataFrameToolsTest.scala
+++ b/spark-iotdb-connector/src/test/scala/org/apache/iotdb/spark/db/unit/DataFrameToolsTest.scala
@@ -8,7 +8,6 @@
  * with the License.  You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
- *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -19,7 +18,6 @@
 
 package org.apache.iotdb.spark.db.unit
 
-import org.apache.iotdb.db.conf.IoTDBConstant
 import org.apache.iotdb.db.service.IoTDB
 import org.apache.iotdb.jdbc.Config
 import org.apache.iotdb.session.Session
@@ -36,7 +34,7 @@ class DataFrameToolsTest extends FunSuite with BeforeAndAfterAll {
 
   @Before
   override protected def beforeAll(): Unit = {
-    System.setProperty(IoTDBConstant.IOTDB_CONF, "src/test/resources/")
+    System.setProperty("IOTDB_CONF", "src/test/resources/")
     super.beforeAll()
 
     daemon = IoTDB.getInstance
diff --git a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/iotdb/IoTDBInterpreterTest.java b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/iotdb/IoTDBInterpreterTest.java
index c89c2b5..352c6d8 100644
--- a/zeppelin-interpreter/src/test/java/org/apache/zeppelin/iotdb/IoTDBInterpreterTest.java
+++ b/zeppelin-interpreter/src/test/java/org/apache/zeppelin/iotdb/IoTDBInterpreterTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.zeppelin.iotdb;
 
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.db.exception.StorageEngineException;
 import org.apache.iotdb.db.utils.EnvironmentUtils;