You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by yu...@apache.org on 2020/07/29 15:38:59 UTC
[incubator-iotdb] branch kyy updated: force flush
This is an automated email from the ASF dual-hosted git repository.
yuyuankang pushed a commit to branch kyy
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/kyy by this push:
new 90a350e force flush
90a350e is described below
commit 90a350e20f8d94190c3387e0c3d691ff2bf60480
Author: Ring-k <yu...@hotmail.com>
AuthorDate: Wed Jul 29 23:38:21 2020 +0800
force flush
---
.../java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java | 2 +-
.../cluster/log/manage/serializable/SyncLogDequeSerializer.java | 9 ++++++---
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
index 748a261..8328c16 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
@@ -600,7 +600,7 @@ abstract public class RaftLogManager {
public void flushLogPeriodically() {
synchronized (this) {
- getStableEntryManager().flushLogBuffer();
+ getStableEntryManager().forceFlushLogBuffer();
}
}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializer.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializer.java
index 61306b6..b5847d8 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializer.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/serializable/SyncLogDequeSerializer.java
@@ -218,18 +218,19 @@ public class SyncLogDequeSerializer implements StableEntryManager {
@Override
public void flushLogBuffer() {
-
lock.writeLock().lock();
try {
if (bufferedLogNum == 0) {
return;
}
// write into disk
- System.out.println(">>>>>>>>>>>>>>>>>>> flush log");
try {
checkStream();
ReadWriteIOUtils
.writeWithoutSize(logBuffer, 0, logBuffer.position(), currentLogOutputStream);
+ if(ClusterDescriptor.getInstance().getConfig().getForceRaftLogPeriodInMS() == 0){
+ currentLogOutputStream.getChannel().force(true);
+ }
} catch (IOException e) {
logger.error("Error in logs serialization: ", e);
return;
@@ -247,7 +248,9 @@ public class SyncLogDequeSerializer implements StableEntryManager {
flushLogBuffer();
lock.writeLock().lock();
try {
- currentLogOutputStream.getChannel().force(true);
+ if (currentLogOutputStream != null) {
+ currentLogOutputStream.getChannel().force(true);
+ }
} catch (IOException e) {
logger.error("Error when force flushing logs serialization: ", e);
return;