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 2022/01/10 02:19:29 UTC
[iotdb] 10/10: try support balance multi raft
This is an automated email from the ASF dual-hosted git repository.
tanxinyu pushed a commit to branch master_performance
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 997ec442b31f5843424c72ed71bf35d92fa3378c
Author: LebronAl <TX...@gmail.com>
AuthorDate: Wed Dec 15 17:00:12 2021 +0800
try support balance multi raft
---
.../src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java | 9 +++++----
.../org/apache/iotdb/cluster/config/ClusterConstant.java | 2 +-
.../src/test/resources/node1conf/iotdb-cluster.properties | 3 ++-
openapi/pom.xml | 12 ++++++++++++
4 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java
index 9710e25..449e316 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java
@@ -530,12 +530,13 @@ public class ClusterIoTDB implements ClusterIoTDBMBean {
final SlotStrategy defaultStrategy = new SlotStrategy.DefaultStrategy();
final int clusterSize =
ClusterDescriptor.getInstance().getConfig().getSeedNodeUrls().size();
+ final int factor = ClusterDescriptor.getInstance().getConfig().getMultiRaftFactor();
@Override
public int calculateSlotByTime(String storageGroupName, long timestamp, int maxSlotNum) {
- int sgSerialNum = extractSerialNumInSGName(storageGroupName) % clusterSize;
+ int sgSerialNum = extractSerialNumInSGName(storageGroupName) % (clusterSize * factor);
if (sgSerialNum >= 0) {
- return maxSlotNum / clusterSize * sgSerialNum;
+ return maxSlotNum / (clusterSize * factor) * sgSerialNum;
} else {
return defaultStrategy.calculateSlotByTime(storageGroupName, timestamp, maxSlotNum);
}
@@ -544,9 +545,9 @@ public class ClusterIoTDB implements ClusterIoTDBMBean {
@Override
public int calculateSlotByPartitionNum(
String storageGroupName, long partitionId, int maxSlotNum) {
- int sgSerialNum = extractSerialNumInSGName(storageGroupName) % clusterSize;
+ int sgSerialNum = extractSerialNumInSGName(storageGroupName) % (clusterSize * factor);
if (sgSerialNum >= 0) {
- return maxSlotNum / clusterSize * sgSerialNum;
+ return maxSlotNum / (clusterSize * factor) * sgSerialNum;
} else {
return defaultStrategy.calculateSlotByPartitionNum(
storageGroupName, partitionId, maxSlotNum);
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConstant.java b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConstant.java
index cb892ae..7df05a6 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConstant.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConstant.java
@@ -39,7 +39,7 @@ public class ClusterConstant {
(int) ClusterConstant.getHeartbeatIntervalMs(),
ClusterConstant.getConnectionTimeoutInMS());
- public static final int SLOT_NUM = 10000;
+ public static final int SLOT_NUM = 9999;
public static final int HASH_SALT = 2333;
public static final int CHECK_ALIVE_TIME_OUT_MS = 1000;
diff --git a/cluster/src/test/resources/node1conf/iotdb-cluster.properties b/cluster/src/test/resources/node1conf/iotdb-cluster.properties
index 050ee8d..9cddb09 100644
--- a/cluster/src/test/resources/node1conf/iotdb-cluster.properties
+++ b/cluster/src/test/resources/node1conf/iotdb-cluster.properties
@@ -21,7 +21,8 @@ internal_meta_port=9003
internal_data_port=40010
cluster_info_public_port=6567
seed_nodes=127.0.0.1:9003,127.0.0.1:9005,127.0.0.1:9007
-default_replica_num=1
+default_replica_num=3
+multi_raft_factor=2
consistency_level=mid
connection_timeout_ms=20000
write_operation_timeout_ms=30000
diff --git a/openapi/pom.xml b/openapi/pom.xml
index 6fd6660..5a79313 100644
--- a/openapi/pom.xml
+++ b/openapi/pom.xml
@@ -73,6 +73,18 @@
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>${jackson.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.calcite.avatica</groupId>
+ <artifactId>avatica</artifactId>
+ <version>1.8.0</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.calcite.avatica</groupId>
+ <artifactId>avatica</artifactId>
+ <version>1.8.0</version>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
<profiles>
<profile>