You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2021/06/07 10:25:46 UTC
[iotdb] branch master updated: Fix compaction lock with query
(#3365)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin 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 80f5aff Fix compaction lock with query (#3365)
80f5aff is described below
commit 80f5afffb6219aba01cc05b9ef80e465ea1d8870
Author: Jackie Tien <Ja...@foxmail.com>
AuthorDate: Mon Jun 7 18:25:09 2021 +0800
Fix compaction lock with query (#3365)
---
.../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();
}