This is an automated email from the ASF dual-hosted git repository. qiaojialin pushed a commit to branch fix_wal in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit b926c24f86373e50bd1d0db41b4a9de4c95458a1 Author: qiaojialin <[email protected]> AuthorDate: Tue Sep 1 22:44:34 2020 +0800 schedual delay --- .../iotdb/db/writelog/manager/MultiFileLogNodeManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java b/server/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java index 40e8fd9..029cd37 100644 --- a/server/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java +++ b/server/src/main/java/org/apache/iotdb/db/writelog/manager/MultiFileLogNodeManager.java @@ -45,6 +45,7 @@ public class MultiFileLogNodeManager implements WriteLogNodeManager, IService { private ScheduledExecutorService executorService; private IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig(); + long counter = 0; private final void forceTask(){ if (IoTDBDescriptor.getInstance().getConfig().isReadOnly()) { @@ -56,6 +57,7 @@ public class MultiFileLogNodeManager implements WriteLogNodeManager, IService { return; } + long s = System.currentTimeMillis(); for (WriteLogNode node : nodeMap.values()) { try { node.forceSync(); @@ -63,6 +65,11 @@ public class MultiFileLogNodeManager implements WriteLogNodeManager, IService { logger.error("Cannot force {}, because ", node, e); } } + counter++; + if (counter % 100 == 0) { + System.out.println("forceSync cost: " + (System.currentTimeMillis() - s)); + } + } private MultiFileLogNodeManager() { @@ -117,7 +124,7 @@ public class MultiFileLogNodeManager implements WriteLogNodeManager, IService { } if (config.getForceWalPeriodInMs() > 0) { executorService = Executors.newSingleThreadScheduledExecutor(); - executorService.scheduleAtFixedRate(this::forceTask, config.getForceWalPeriodInMs(), + executorService.scheduleWithFixedDelay(this::forceTask, config.getForceWalPeriodInMs(), config.getForceWalPeriodInMs(), TimeUnit.MILLISECONDS); } } catch (Exception e) {
