You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2021/06/07 06:17:44 UTC

[iotdb] branch CompactionQueryLock012 created (now 77c74d9)

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

jackietien pushed a change to branch CompactionQueryLock012
in repository https://gitbox.apache.org/repos/asf/iotdb.git.


      at 77c74d9  Fix compaction lock with query

This branch includes the following new commits:

     new 77c74d9  Fix compaction lock with query

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[iotdb] 01/01: Fix compaction lock with query

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 77c74d90be2fcde0618d9c83b055440a2380c59d
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Mon Jun 7 12:01:09 2021 +0800

    Fix compaction lock with query
---
 .../java/org/apache/iotdb/db/engine/compaction/TsFileManagement.java  | 4 ++--
 .../apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java    | 4 ++++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/TsFileManagement.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/TsFileManagement.java
index 4ae9f1f..8dc2e16 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/TsFileManagement.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/TsFileManagement.java
@@ -135,11 +135,11 @@ public abstract class TsFileManagement {
   /** fork current TsFile list (call this before merge) */
   public abstract void forkCurrentFileList(long timePartition) throws IOException;
 
-  protected void readLock() {
+  public void readLock() {
     compactionMergeLock.readLock().lock();
   }
 
-  protected void readUnLock() {
+  public void readUnLock() {
     compactionMergeLock.readLock().unlock();
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index 8beca06..b2d4b60 100755
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@ -1587,10 +1587,14 @@ public class StorageGroupProcessor {
   }
 
   public void readLock() {
+    // apply read lock for SG insert lock to prevent inconsistent with concurrently writing memtable
     insertLock.readLock().lock();
+    // apply read lock for TsFileResource list
+    tsFileManagement.readLock();
   }
 
   public void readUnlock() {
+    tsFileManagement.readUnLock();
     insertLock.readLock().unlock();
   }