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

ericpai 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 6e7e7e22e3 [IOTDB-3961] Fix bug of Tsfile compact (#6770)
6e7e7e22e3 is described below

commit 6e7e7e22e313a0f97aec0046b3ad39647b360cb4
Author: Jamber <[email protected]>
AuthorDate: Fri Jul 29 14:36:30 2022 +0800

    [IOTDB-3961] Fix bug of Tsfile compact (#6770)
---
 docs/UserGuide/Maintenance-Tools/Metric-Tool.md    |  2 +-
 docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md |  2 +-
 .../db/engine/compaction/CompactionWorker.java     | 34 ++++++++++++----------
 .../recorder/CompactionMetricsRecorder.java        |  2 +-
 4 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/docs/UserGuide/Maintenance-Tools/Metric-Tool.md 
b/docs/UserGuide/Maintenance-Tools/Metric-Tool.md
index bd3f6079fb..a1cb9ef531 100644
--- a/docs/UserGuide/Maintenance-Tools/Metric-Tool.md
+++ b/docs/UserGuide/Maintenance-Tools/Metric-Tool.md
@@ -96,7 +96,7 @@ Next, we will choose Prometheus format data as samples to 
describe each kind of
 | cost_task_seconds_sum   | name="inner_compaction/cross_compaction/flush"     
                           | important | The total cost seconds of all tasks 
till now             | cost_task_seconds_sum{name="flush",} 0.363               
                               |
 | data_written            | name="compaction", <br 
/>type="aligned/not-aligned/total"                     | important | The size 
of data written in compaction                   | 
data_written{name="compaction",type="total",} 10240                             
        |
 | data_read               | name="compaction"                                  
                           | important | The size of data read in compaction    
                  | data_read={name="compaction",} 10240                        
                            |
-| compaction_task_count   | name = "inner_compaction/cross_compaction", 
type="sequence/unsequence/total"  | important | The number of compaction task   
                         | 
compaction_task_count{name="inner_compaction",type="sequence",} 1               
        |
+| compaction_task_count   | name = "inner_compaction/cross_compaction", 
type="sequence/unsequence/cross"  | important | The number of compaction task   
                         | 
compaction_task_count{name="inner_compaction",type="sequence",} 1               
        |
 
 #### 4.3.3. Memory Usage
 
diff --git a/docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md 
b/docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md
index 99327a3024..b18dbb6e56 100644
--- a/docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md
+++ b/docs/zh/UserGuide/Maintenance-Tools/Metric-Tool.md
@@ -95,7 +95,7 @@ IoTDB对外提供JMX和Prometheus格式的监控指标,对于JMX,可以通
 | cost_task_seconds_sum   | name="inner_compaction/cross_compaction/flush"     
                           | important | 任务累计耗时(s)                 | 
cost_task_seconds_sum{name="flush",} 0.363                                      
                   |
 | data_written            | name="compaction", <br 
/>type="aligned/not-aligned/total"                     | important | 合并文件时写入量   
             | data_written{name="compaction",type="total",} 10240              
                                  |
 | data_read               | name="compaction"                                  
                           | important | 合并文件时的读取量              | 
data_read={name="compaction",} 10240                                            
                   |
-| compaction_task_count   | name = "inner_compaction/cross_compaction", 
type="sequence/unsequence/total"  | important | 合并任务个数                    | 
compaction_task_count{name="inner_compaction",type="sequence",} 1               
                   |
+| compaction_task_count   | name = "inner_compaction/cross_compaction", 
type="sequence/unsequence/cross"  | important | 合并任务个数                    | 
compaction_task_count{name="inner_compaction",type="sequence",} 1               
                   |
 
 #### 4.3.3. 内存占用
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionWorker.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionWorker.java
index 86ef4b74a8..c9dc58098c 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionWorker.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/CompactionWorker.java
@@ -47,23 +47,27 @@ public class CompactionWorker implements Runnable {
   @Override
   public void run() {
     while (!Thread.currentThread().isInterrupted()) {
-      AbstractCompactionTask task = null;
       try {
-        task = compactionTaskQueue.take();
-      } catch (InterruptedException e) {
-        log.warn("CompactionThread-{} terminates because interruption", 
threadId);
-        return;
-      }
-      if (task != null) {
-        // add metrics
-        CompactionMetricsRecorder.recordTaskInfo(
-            task, CompactionTaskStatus.POLL_FROM_QUEUE, 
compactionTaskQueue.size());
-        if (task.checkValidAndSetMerging()) {
-          CompactionTaskSummary summary = task.getSummary();
-          CompactionTaskFuture future = new CompactionTaskFuture(summary);
-          CompactionTaskManager.getInstance().recordTask(task, future);
-          task.start();
+        AbstractCompactionTask task = null;
+        try {
+          task = compactionTaskQueue.take();
+        } catch (InterruptedException e) {
+          log.warn("CompactionThread-{} terminates because interruption", 
threadId);
+          return;
+        }
+        if (task != null) {
+          // add metrics
+          CompactionMetricsRecorder.recordTaskInfo(
+              task, CompactionTaskStatus.POLL_FROM_QUEUE, 
compactionTaskQueue.size());
+          if (task.checkValidAndSetMerging()) {
+            CompactionTaskSummary summary = task.getSummary();
+            CompactionTaskFuture future = new CompactionTaskFuture(summary);
+            CompactionTaskManager.getInstance().recordTask(task, future);
+            task.start();
+          }
         }
+      } catch (Throwable t) {
+        log.error("CompactionWorker.run(), Exception.", t);
       }
     }
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/service/metrics/recorder/CompactionMetricsRecorder.java
 
b/server/src/main/java/org/apache/iotdb/db/service/metrics/recorder/CompactionMetricsRecorder.java
index 9e4ec16328..b9482f2ff5 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/service/metrics/recorder/CompactionMetricsRecorder.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/service/metrics/recorder/CompactionMetricsRecorder.java
@@ -166,7 +166,7 @@ public class CompactionMetricsRecorder {
                   Tag.NAME.toString(),
                   "cross_compaction",
                   Tag.TYPE.toString(),
-                  "total");
+                  "cross");
         }
         break;
       default:

Reply via email to