You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ta...@apache.org on 2020/12/19 17:09:46 UTC
[iotdb] branch cluster_multi_raft updated: keep raft leader in one
node && balance data to all raft group
This is an automated email from the ASF dual-hosted git repository.
tanxinyu pushed a commit to branch cluster_multi_raft
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/cluster_multi_raft by this push:
new 7ee34da keep raft leader in one node && balance data to all raft group
7ee34da is described below
commit 7ee34da99c33aa1c22457751fe880d049c3834b4
Author: LebronAl <TX...@gmail.com>
AuthorDate: Sun Dec 20 01:08:33 2020 +0800
keep raft leader in one node && balance data to all raft group
---
cluster/src/main/java/org/apache/iotdb/cluster/ClusterMain.java | 5 +++--
.../apache/iotdb/cluster/server/heartbeat/DataHeartbeatThread.java | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterMain.java b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterMain.java
index 4d87317..2e4fdda 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterMain.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterMain.java
@@ -282,7 +282,7 @@ public class ClusterMain {
// nodes evenly, and use default strategy for other groups
SlotPartitionTable.setSlotStrategy(new SlotStrategy() {
SlotStrategy defaultStrategy = new SlotStrategy.DefaultStrategy();
- int k = 3;
+ int k = 2;
@Override
public int calculateSlotByTime(String storageGroupName, long timestamp, int maxSlotNum) {
int sgSerialNum = extractSerialNumInSGName(storageGroupName) % k;
@@ -305,10 +305,11 @@ public class ClusterMain {
}
private int extractSerialNumInSGName(String storageGroupName) {
- String[] s = storageGroupName.split("_");
+ String[] s = storageGroupName.split("\\.");
if (s.length != 2) {
return -1;
}
+ s[1] = s[1].substring(4);
try {
return Integer.parseInt(s[1]);
} catch (NumberFormatException e) {
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatThread.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatThread.java
index a56a899..3547c17 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatThread.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatThread.java
@@ -55,7 +55,7 @@ public class DataHeartbeatThread extends HeartbeatThread {
void startElection() {
// skip first few elections to let the header have a larger chance to become the leader, so
// possibly each node will only be one leader at the same time
- if (!dataGroupMember.getThisNode().equals(dataGroupMember.getHeader()) &&
+ if (!dataGroupMember.getThisNode().equals(dataGroupMember.getMetaGroupMember().getAllNodes().iterator().next()) &&
skippedElectionNumber < MAX_ELECTIONS_TO_SKIP &&
!hasHadLeader) {
skippedElectionNumber++;