This is an automated email from the ASF dual-hosted git repository.
xingtanzjr 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 ad980dbf973 Fix Compaction Schedule didn't start (#11439)
ad980dbf973 is described below
commit ad980dbf9739f49901650606755ece98e6e0f084
Author: Haonan <[email protected]>
AuthorDate: Tue Oct 31 19:28:51 2023 +0800
Fix Compaction Schedule didn't start (#11439)
---
.../apache/iotdb/db/storageengine/StorageEngine.java | 18 +++++++++++-------
.../iotdb/db/storageengine/dataregion/DataRegion.java | 2 +-
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
index dcfbc918f74..ea14efcd4b4 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
@@ -193,7 +193,7 @@ public class StorageEngine implements IService {
isAllSgReady.set(allSgReady);
}
- public void recover() throws StartupException {
+ public void asyncRecover() throws StartupException {
setAllSgReady(false);
cachedThreadPool =
IoTDBThreadPoolFactory.newCachedThreadPool(ThreadName.STORAGE_ENGINE_CACHED_POOL.getName());
@@ -218,11 +218,20 @@ public class StorageEngine implements IService {
checkResults(futures, "StorageEngine failed to recover.");
setAllSgReady(true);
ttlMapForRecover.clear();
+ initCompactionSchedule();
},
ThreadName.STORAGE_ENGINE_RECOVER_TRIGGER.getName());
recoverEndTrigger.start();
}
+ private void initCompactionSchedule() {
+ for (DataRegion dataRegion : dataRegionMap.values()) {
+ if (dataRegion != null) {
+ dataRegion.initCompactionSchedule();
+ }
+ }
+ }
+
private void asyncRecover(List<Future<Void>> futures) {
Map<String, List<DataRegionId>> localDataRegionInfo =
getLocalDataRegionInfo();
localDataRegionInfo.values().forEach(list -> recoverDataRegionNum +=
list.size());
@@ -295,12 +304,7 @@ public class StorageEngine implements IService {
throw new StorageEngineFailureException(e);
}
- recover();
- for (DataRegion dataRegion : dataRegionMap.values()) {
- if (dataRegion != null) {
- dataRegion.initCompaction();
- }
- }
+ asyncRecover();
ttlCheckThread =
IoTDBThreadPoolFactory.newSingleThreadScheduledExecutor(ThreadName.TTL_CHECK.getName());
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
index 42780fa177f..5dd46accb01 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
@@ -600,7 +600,7 @@ public class DataRegion implements IDataRegionForQuery {
lastFlushTimeMap.setMultiDeviceGlobalFlushedTime(endTimeMap);
}
- public void initCompaction() {
+ public void initCompactionSchedule() {
if (!config.isEnableSeqSpaceCompaction()
&& !config.isEnableUnseqSpaceCompaction()
&& !config.isEnableCrossSpaceCompaction()