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 04:01:53 UTC

[iotdb] branch CompactionQueryLock created (now df5616b)

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

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


      at df5616b  Fix compaction lock with query

This branch includes the following new commits:

     new df5616b  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 CompactionQueryLock
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit df5616b71d391d3589e8565e155321bb40e315e2
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 aea6e8b..8f17c1f 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 a402e48..5ee4adf 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
@@ -1606,10 +1606,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();
   }