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

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


The following commit(s) were added to refs/heads/optimize_insert_first by this 
push:
     new a2bbba8fa39 Resolve conversations
a2bbba8fa39 is described below

commit a2bbba8fa39f7c51c743f6d3f59961b8254a00bc
Author: YongzaoDan <[email protected]>
AuthorDate: Mon Feb 26 10:37:11 2024 +0800

    Resolve conversations
---
 .../src/main/java/org/apache/iotdb/cli/AbstractCli.java  |  5 -----
 .../iotdb/confignode/manager/load/LoadManager.java       | 11 ++++++++---
 .../confignode/manager/load/balancer/RouteBalancer.java  |  6 ++----
 .../iotdb/confignode/manager/load/cache/LoadCache.java   |  6 ------
 .../manager/load/cache/route/RegionRouteCache.java       |  2 --
 .../manager/load/service/StatisticsService.java          | 16 +++++++++++-----
 .../resources/confignode1conf/iotdb-common.properties    |  8 ++++----
 7 files changed, 25 insertions(+), 29 deletions(-)

diff --git 
a/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java 
b/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java
index 0dc81f0a889..1ba700a0a94 100644
--- a/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java
+++ b/iotdb-client/cli/src/main/java/org/apache/iotdb/cli/AbstractCli.java
@@ -32,8 +32,6 @@ import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
 import org.apache.commons.lang3.ArrayUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -50,7 +48,6 @@ import java.util.List;
 import java.util.Set;
 
 public abstract class AbstractCli {
-  private static final Logger logger = 
LoggerFactory.getLogger(AbstractCli.class);
 
   static final String HOST_ARGS = "h";
   static final String HOST_NAME = "host";
@@ -599,8 +596,6 @@ public abstract class AbstractCli {
         }
       } else {
         ctx.getPrinter().println("Msg: " + SUCCESS_MESSAGE);
-        long costTime = System.currentTimeMillis() - startTime;
-        logger.info("INSERT_FIRST: execute successfully, costTime: {}ms", 
costTime);
       }
     } catch (Exception e) {
       ctx.getPrinter().println("Msg: " + e);
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/LoadManager.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/LoadManager.java
index 3c5b197d073..0b7b9b8a6fd 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/LoadManager.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/LoadManager.java
@@ -45,6 +45,7 @@ import 
org.apache.iotdb.confignode.manager.load.service.HeartbeatService;
 import org.apache.iotdb.confignode.manager.load.service.StatisticsService;
 import org.apache.iotdb.confignode.manager.partition.RegionGroupStatus;
 import org.apache.iotdb.confignode.rpc.thrift.TTimeSlotList;
+import org.apache.iotdb.tsfile.utils.Pair;
 
 import com.google.common.eventbus.AsyncEventBus;
 import com.google.common.eventbus.EventBus;
@@ -414,9 +415,13 @@ public class LoadManager {
     loadCache.removeRegionRouteCache(regionGroupId);
   }
 
-  /** Force balance the region leader. */
+  /** Force balance the region leader and broadcast RouteChangeEvent if 
necessary. */
   public void forceBalanceRegionLeader() {
-    routeBalancer.balanceRegionLeader();
-    routeBalancer.balanceRegionPriority();
+    Map<TConsensusGroupId, Pair<Integer, Integer>> differentRegionLeaderMap =
+        routeBalancer.balanceRegionLeader();
+    Map<TConsensusGroupId, Pair<TRegionReplicaSet, TRegionReplicaSet>> 
differentRegionPriorityMap =
+        routeBalancer.balanceRegionPriority();
+    statisticsService.broadcastRouteChangeEventIfNecessary(
+        differentRegionLeaderMap, differentRegionPriorityMap);
   }
 }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/RouteBalancer.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/RouteBalancer.java
index 088e2b12617..46fc625474a 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/RouteBalancer.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/RouteBalancer.java
@@ -76,12 +76,14 @@ public class RouteBalancer {
               && 
ConsensusFactory.RATIS_CONSENSUS.equals(DATA_REGION_CONSENSUS_PROTOCOL_CLASS))
           || (CONF.isEnableAutoLeaderBalanceForIoTConsensus()
               && 
ConsensusFactory.IOT_CONSENSUS.equals(DATA_REGION_CONSENSUS_PROTOCOL_CLASS))
+          // The simple consensus protocol will always automatically designate 
itself as the leader
           || 
ConsensusFactory.SIMPLE_CONSENSUS.equals(DATA_REGION_CONSENSUS_PROTOCOL_CLASS);
   private static final boolean IS_ENABLE_AUTO_LEADER_BALANCE_FOR_SCHEMA_REGION 
=
       (CONF.isEnableAutoLeaderBalanceForRatisConsensus()
               && 
ConsensusFactory.RATIS_CONSENSUS.equals(SCHEMA_REGION_CONSENSUS_PROTOCOL_CLASS))
           || (CONF.isEnableAutoLeaderBalanceForIoTConsensus()
               && 
ConsensusFactory.IOT_CONSENSUS.equals(SCHEMA_REGION_CONSENSUS_PROTOCOL_CLASS))
+          // The simple consensus protocol will always automatically designate 
itself as the leader
           || 
ConsensusFactory.SIMPLE_CONSENSUS.equals(SCHEMA_REGION_CONSENSUS_PROTOCOL_CLASS);
 
   private final IManager configManager;
@@ -194,10 +196,6 @@ public class RouteBalancer {
               .forceUpdateRegionLeader(
                   clientHandler.getRequest(i).getRegionId(),
                   
clientHandler.getRequest(i).getNewLeaderNode().getDataNodeId());
-          LOGGER.info(
-              "[forceUpdateRegionLeader], regionId:{}, datanodeId:{}",
-              clientHandler.getRequest(i).getRegionId(),
-              clientHandler.getRequest(i).getNewLeaderNode().getDataNodeId());
         } else {
           LOGGER.error(
               "[LeaderBalancer] Failed to change the leader of Region: {} to 
DataNode: {}",
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/LoadCache.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/LoadCache.java
index 4aea84a789e..914192a1ce0 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/LoadCache.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/LoadCache.java
@@ -27,8 +27,6 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
 import org.apache.iotdb.commons.cluster.NodeStatus;
 import org.apache.iotdb.commons.cluster.NodeType;
 import org.apache.iotdb.commons.cluster.RegionStatus;
-import org.apache.iotdb.confignode.conf.ConfigNodeConfig;
-import org.apache.iotdb.confignode.conf.ConfigNodeDescriptor;
 import org.apache.iotdb.confignode.manager.IManager;
 import org.apache.iotdb.confignode.manager.ProcedureManager;
 import org.apache.iotdb.confignode.manager.load.cache.node.BaseNodeCache;
@@ -64,7 +62,6 @@ public class LoadCache {
 
   private static final Logger LOGGER = 
LoggerFactory.getLogger(LoadCache.class);
 
-  private static final ConfigNodeConfig CONF = 
ConfigNodeDescriptor.getInstance().getConf();
   private static final long WAIT_LEADER_INTERVAL = 50;
   private static final long LEADER_ELECTION_WAITING_TIMEOUT =
       Math.max(
@@ -545,9 +542,6 @@ public class LoadCache {
     LOGGER.info("[RegionElection] Wait for leader election of RegionGroups: 
{}", regionGroupIds);
     while (System.currentTimeMillis() - startTime <= 
LEADER_ELECTION_WAITING_TIMEOUT) {
       AtomicBoolean allRegionLeaderElected = new AtomicBoolean(true);
-      LOGGER.info(
-          "[RegionElection] containsKey: {}",
-          regionRouteCacheMap.containsKey(regionGroupIds.get(0)));
       regionGroupIds.forEach(
           regionGroupId -> {
             if (!regionRouteCacheMap.containsKey(regionGroupId)
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/route/RegionRouteCache.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/route/RegionRouteCache.java
index 81adff83c75..31c0da1744c 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/route/RegionRouteCache.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/route/RegionRouteCache.java
@@ -102,7 +102,6 @@ public class RegionRouteCache {
         // The leader of simple and ratis consensus is self-elected
         if (leaderSample.get().getRight() != leaderId.get()) {
           leaderId.set(leaderSample.get().getRight());
-          LOGGER.info("[RegionElection], setLeaderId1: {}", 
leaderSample.get().getRight());
           return true;
         }
         return false;
@@ -121,7 +120,6 @@ public class RegionRouteCache {
    * @param leaderId Leader DataNodeId
    */
   public void forceUpdateRegionLeader(int leaderId) {
-    LOGGER.info("[RegionElection], setLeaderId2: {}", leaderId);
     this.leaderId.set(leaderId);
   }
 
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/service/StatisticsService.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/service/StatisticsService.java
index 0b4346e50cf..4d98a66106b 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/service/StatisticsService.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/service/StatisticsService.java
@@ -146,11 +146,7 @@ public class StatisticsService implements 
IClusterStatusSubscriber {
       // Map<RegionGroupId, Pair<old priority, new priority>>
       Map<TConsensusGroupId, Pair<TRegionReplicaSet, TRegionReplicaSet>>
           differentRegionPriorityMap = routeBalancer.balanceRegionPriority();
-
-      if (containsChangeEvent(differentRegionLeaderMap)
-          || containsChangeEvent(differentRegionPriorityMap)) {
-        eventBus.post(new RouteChangeEvent(differentRegionLeaderMap, 
differentRegionPriorityMap));
-      }
+      broadcastRouteChangeEventIfNecessary(differentRegionLeaderMap, 
differentRegionPriorityMap);
     }
 
     if (isNeedBroadcast) {
@@ -160,6 +156,16 @@ public class StatisticsService implements 
IClusterStatusSubscriber {
     }
   }
 
+  public void broadcastRouteChangeEventIfNecessary(
+      Map<TConsensusGroupId, Pair<Integer, Integer>> differentRegionLeaderMap,
+      Map<TConsensusGroupId, Pair<TRegionReplicaSet, TRegionReplicaSet>>
+          differentRegionPriorityMap) {
+    if (containsChangeEvent(differentRegionLeaderMap)
+        || containsChangeEvent(differentRegionPriorityMap)) {
+      eventBus.post(new RouteChangeEvent(differentRegionLeaderMap, 
differentRegionPriorityMap));
+    }
+  }
+
   private static <T> boolean containsChangeEvent(Map<TConsensusGroupId, 
Pair<T, T>> map) {
     return !map.isEmpty()
         && map.values().stream().anyMatch(pair -> 
!Objects.equals(pair.getLeft(), pair.getRight()));
diff --git 
a/iotdb-core/confignode/src/test/resources/confignode1conf/iotdb-common.properties
 
b/iotdb-core/confignode/src/test/resources/confignode1conf/iotdb-common.properties
index a45651ad9de..8981b21285b 100644
--- 
a/iotdb-core/confignode/src/test/resources/confignode1conf/iotdb-common.properties
+++ 
b/iotdb-core/confignode/src/test/resources/confignode1conf/iotdb-common.properties
@@ -18,10 +18,10 @@
 #
 
 timestamp_precision=ms
-data_region_consensus_protocol_class=org.apache.iotdb.consensus.simple.SimpleConsensus
-schema_region_consensus_protocol_class=org.apache.iotdb.consensus.simple.SimpleConsensus
-schema_replication_factor=1
-data_replication_factor=1
+data_region_consensus_protocol_class=org.apache.iotdb.consensus.iot.IoTConsensus
+schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
+schema_replication_factor=3
+data_replication_factor=3
 udf_lib_dir=target/confignode1/ext/udf
 trigger_lib_dir=target/confignode1/ext/trigger
 pipe_lib_dir=target/confignode1/ext/pipe

Reply via email to