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