You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ca...@apache.org on 2023/02/05 08:37:48 UTC

[iotdb] 01/01: fix

This is an automated email from the ASF dual-hosted git repository.

caogaofei pushed a commit to branch new_geely_car_0205
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit b1ea803e0ee668199741a28fc05c6101ab46f6d8
Author: Beyyes <cg...@foxmail.com>
AuthorDate: Sun Feb 5 16:37:30 2023 +0800

    fix
---
 .../statemachine/ConfigNodeRegionStateMachine.java   | 20 ++++++--------------
 .../iotdb/confignode/manager/ConfigManager.java      |  7 +++++++
 2 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigNodeRegionStateMachine.java b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigNodeRegionStateMachine.java
index 16d75de30b..72e68c1cfe 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigNodeRegionStateMachine.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigNodeRegionStateMachine.java
@@ -51,6 +51,7 @@ import java.nio.file.Files;
 import java.nio.file.StandardCopyOption;
 import java.util.Optional;
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
 /** StateMachine for ConfigNodeRegion */
@@ -68,6 +69,7 @@ public class ConfigNodeRegionStateMachine
   private File logFile;
   private int startIndex;
   private int endIndex;
+  private ScheduledExecutorService executorService;
 
   private static final String CURRENT_FILE_DIR =
       CONF.getConsensusDir() + File.separator + "simple" + File.separator + "current";
@@ -302,15 +304,10 @@ public class ConfigNodeRegionStateMachine
 
     try {
       ByteBuffer buffer = plan.serializeToByteBuffer();
-      // The method logWriter.write will execute flip() firstly, so we must make position==limit
       buffer.position(buffer.limit());
       logWriter.write(buffer);
-      logWriter.close();
+
       endIndex = endIndex + 1;
-      File tmpLogFile = new File(PROGRESS_FILE_PATH + endIndex);
-      Files.move(logFile.toPath(), tmpLogFile.toPath(), StandardCopyOption.ATOMIC_MOVE);
-      logFile = tmpLogFile;
-      logWriter = new LogWriter(logFile, false);
     } catch (Exception e) {
       LOGGER.error(
           "Can't serialize current ConfigPhysicalPlan for ConfigNode SimpleConsensus mode", e);
@@ -323,14 +320,6 @@ public class ConfigNodeRegionStateMachine
     String[] list = new File(CURRENT_FILE_DIR).list();
     if (list != null && list.length != 0) {
       for (String logFileName : list) {
-        int tmp = Integer.parseInt(logFileName.substring(logFileName.lastIndexOf("_") + 1));
-        if (logFileName.startsWith("log_inprogress")) {
-          endIndex = tmp;
-        } else {
-          if (startIndex < tmp) {
-            startIndex = tmp;
-          }
-        }
         File logFile =
             SystemFileFactory.INSTANCE.getFile(CURRENT_FILE_DIR + File.separator + logFileName);
         SingleFileLogReader logReader;
@@ -343,7 +332,10 @@ public class ConfigNodeRegionStateMachine
               e);
           continue;
         }
+
+        startIndex = endIndex;
         while (logReader.hasNext()) {
+          endIndex++;
           // read and re-serialize the PhysicalPlan
           ConfigPhysicalPlan nextPlan = logReader.next();
           try {
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
index 36371078e8..c1b2ef9ea8 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
@@ -217,6 +217,8 @@ public class ConfigManager implements IManager {
 
   private final RetryFailedTasksThread retryFailedTasksThread;
 
+  private static int dataPartitionCount = 0;
+
   public ConfigManager() throws IOException {
     // Build the persistence module
     NodeInfo nodeInfo = new NodeInfo();
@@ -723,6 +725,11 @@ public class ConfigManager implements IManager {
 
     resp = queryResult.convertToTDataPartitionTableResp();
 
+    dataPartitionCount++;
+    if (dataPartitionCount % 100 == 0) {
+      LOGGER.info("dataPartition req count: {}", dataPartitionCount);
+    }
+
     LOGGER.debug(
         "GetOrCreateDataPartition success. receive PartitionSlotsMap: {}, return: {}",
         getOrCreateDataPartitionReq.getPartitionSlotsMap(),