fix the bug that wal cannot be removed
diff --git a/server/src/main/java/org/apache/iotdb/db/wal/WALManager.java b/server/src/main/java/org/apache/iotdb/db/wal/WALManager.java index 36db197..d041114 100644 --- a/server/src/main/java/org/apache/iotdb/db/wal/WALManager.java +++ b/server/src/main/java/org/apache/iotdb/db/wal/WALManager.java
@@ -202,7 +202,7 @@ } public boolean shouldThrottle() { - return getTotalDiskUsage() >= config.getThrottleThreshold(); + return getTotalDiskUsage() >= config.getThrottleThreshold() * 0.8; } public long getTotalDiskUsage() {
diff --git a/server/src/main/java/org/apache/iotdb/db/wal/node/WALNode.java b/server/src/main/java/org/apache/iotdb/db/wal/node/WALNode.java index 4891062..8a040a9 100644 --- a/server/src/main/java/org/apache/iotdb/db/wal/node/WALNode.java +++ b/server/src/main/java/org/apache/iotdb/db/wal/node/WALNode.java
@@ -240,13 +240,7 @@ identifier, firstValidVersionId, safelyDeletedSearchIndex); - boolean pinnedByIoTConsensus = deleteOutdatedFiles(); - if (pinnedByIoTConsensus) { - logger.debug( - "Cannot delete wal files for wal node-{} because of wal files are pinned by IoTConsensus.", - identifier); - return; - } + deleteOutdatedFiles(); // calculate effective information ratio long costOfActiveMemTables = checkpointManager.getTotalCostOfActiveMemTables(); @@ -277,6 +271,10 @@ config.getWalMinEffectiveInfoRatio()); boolean isSuccess = snapshotOrFlushMemTable(); if (isSuccess && recursionTime < MAX_RECURSION_TIME) { + // wal is used to search, cannot optimize files deletion + if (safelyDeletedSearchIndex != DEFAULT_SAFELY_DELETED_SEARCH_INDEX) { + return; + } recursionTime++; run(); }