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(),