You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by lt...@apache.org on 2019/06/24 12:46:36 UTC
[incubator-iotdb] branch feature_async_close_tsfile updated: fix
thread visible bug
This is an automated email from the ASF dual-hosted git repository.
lta pushed a commit to branch feature_async_close_tsfile
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/feature_async_close_tsfile by this push:
new 69a113c fix thread visible bug
69a113c is described below
commit 69a113cb99ffd9e2d165b4511e0823a64cb8f1de
Author: lta <li...@163.com>
AuthorDate: Mon Jun 24 20:46:24 2019 +0800
fix thread visible bug
---
.../java/org/apache/iotdb/db/engine/filenodeV2/FlushManager.java | 7 ++-----
.../org/apache/iotdb/db/engine/memtable/MemTableFlushTaskV2.java | 4 ++--
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/FlushManager.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/FlushManager.java
index 1c9adbe..b971b75 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/FlushManager.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/FlushManager.java
@@ -39,6 +39,7 @@ public class FlushManager {
@Override
public void run() {
UnsealedTsFileProcessorV2 unsealedTsFileProcessor = unsealedTsFileProcessorQueue.poll();
+ long startTime = System.currentTimeMillis();
try {
unsealedTsFileProcessor.flushOneMemTable();
} catch (IOException e) {
@@ -46,6 +47,7 @@ public class FlushManager {
// TODO do sth
}
unsealedTsFileProcessor.setManagedByFlushManager(false);
+ LOGGER.info("flush process consume {} ms", System.currentTimeMillis() - startTime);
registerUnsealedTsFileProcessor(unsealedTsFileProcessor);
}
}
@@ -57,11 +59,6 @@ public class FlushManager {
synchronized (unsealedTsFileProcessor) {
if (!unsealedTsFileProcessor.isManagedByFlushManager() && unsealedTsFileProcessor.getFlushingMemTableSize() > 0) {
LOGGER.info("begin to submit a flush thread, flushing memtable size: {}", unsealedTsFileProcessor.getFlushingMemTableSize());
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
unsealedTsFileProcessorQueue.add(unsealedTsFileProcessor);
unsealedTsFileProcessor.setManagedByFlushManager(true);
return flushPool.submit(new FlushThread());
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskV2.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskV2.java
index 13c45a5..29e6ed3 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskV2.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskV2.java
@@ -40,7 +40,7 @@ public class MemTableFlushTaskV2 {
private ConcurrentLinkedQueue ioTaskQueue = new ConcurrentLinkedQueue();
private ConcurrentLinkedQueue memoryTaskQueue = new ConcurrentLinkedQueue();
- private boolean stop = false;
+ private volatile boolean stop = false;
private String storageGroup;
private Consumer<IMemTable> flushCallBack;
@@ -219,7 +219,7 @@ public class MemTableFlushTaskV2 {
int seriesNumber;
String deviceId;
long version;
- boolean finished;
+ volatile boolean finished;
public ChunkGroupIoTask(int seriesNumber, String deviceId, long version) {
this(seriesNumber, deviceId, version, false);