You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2022/03/23 06:02:33 UTC
[iotdb] branch master updated: [IOTDB-2787] Fix aligned mem chunk concurrent problem (#5322)
This is an automated email from the ASF dual-hosted git repository.
haonan 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 c8a5c8f [IOTDB-2787] Fix aligned mem chunk concurrent problem (#5322)
c8a5c8f is described below
commit c8a5c8fca630ca764c415868f4249bacbe9469e2
Author: SilverNarcissus <15...@smail.nju.edu.cn>
AuthorDate: Wed Mar 23 14:00:12 2022 +0800
[IOTDB-2787] Fix aligned mem chunk concurrent problem (#5322)
---
.../apache/iotdb/db/engine/memtable/AlignedWritableMemChunk.java | 6 +++---
.../java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java | 6 ++++++
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunk.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunk.java
index cef4c5d..c7ec62f 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunk.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AlignedWritableMemChunk.java
@@ -206,7 +206,7 @@ public class AlignedWritableMemChunk implements IWritableMemChunk {
}
@Override
- public TVList getSortedTvListForQuery() {
+ public synchronized TVList getSortedTvListForQuery() {
sortTVList();
// increase reference count
list.increaseReferenceCount();
@@ -214,7 +214,7 @@ public class AlignedWritableMemChunk implements IWritableMemChunk {
}
@Override
- public TVList getSortedTvListForQuery(List<IMeasurementSchema> schemaList) {
+ public synchronized TVList getSortedTvListForQuery(List<IMeasurementSchema> schemaList) {
sortTVList();
// increase reference count
list.increaseReferenceCount();
@@ -238,7 +238,7 @@ public class AlignedWritableMemChunk implements IWritableMemChunk {
}
@Override
- public void sortTvListForFlush() {
+ public synchronized void sortTvListForFlush() {
sortTVList();
}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
index 3061c30..c46714f 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/memtable/IWritableMemChunk.java
@@ -94,6 +94,8 @@ public interface IWritableMemChunk {
*
* <p>the mechanism is just like copy on write
*
+ * <p>This interface should be synchronized for concurrent with sortTvListForFlush
+ *
* @return sorted tv list
*/
TVList getSortedTvListForQuery();
@@ -103,6 +105,8 @@ public interface IWritableMemChunk {
*
* <p>the mechanism is just like copy on write
*
+ * <p>This interface should be synchronized for concurrent with sortTvListForFlush
+ *
* @return sorted tv list
*/
TVList getSortedTvListForQuery(List<IMeasurementSchema> schemaList);
@@ -110,6 +114,8 @@ public interface IWritableMemChunk {
/**
* served for flush requests. The logic is just same as getSortedTVListForQuery, but without add
* reference count
+ *
+ * <p>This interface should be synchronized for concurrent with getSortedTvListForQuery
*/
void sortTvListForFlush();