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 f3c2d35c86133cc119b4b9e8b91b35ff7c7e5c76 Author: LebronAl <[email protected]> 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 b3d1cb5..42bd216 100644 --- a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java +++ b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java @@ -541,12 +541,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); } @@ -555,9 +556,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>
