You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/11/27 16:44:52 UTC
[iotdb] branch master updated: Fix IT bug (#8206)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new c43deda65b Fix IT bug (#8206)
c43deda65b is described below
commit c43deda65bd6c21f476f6c7646e40e62990cbe96
Author: YongzaoDan <33...@users.noreply.github.com>
AuthorDate: Mon Nov 28 00:44:47 2022 +0800
Fix IT bug (#8206)
---
.../java/org/apache/iotdb/it/env/MppConfig.java | 11 +--
.../org/apache/iotdb/itbase/env/BaseConfig.java | 10 +--
.../it/IoTDBClusterRegionLeaderBalancingIT.java | 19 ++---
.../it/partition/IoTDBPartitionDurableIT.java | 4 +-
.../it/partition/IoTDBPartitionGetterIT.java | 82 ++++++++++++++--------
5 files changed, 78 insertions(+), 48 deletions(-)
diff --git a/integration-test/src/main/java/org/apache/iotdb/it/env/MppConfig.java b/integration-test/src/main/java/org/apache/iotdb/it/env/MppConfig.java
index 5a7c46e059..809d8e99b5 100644
--- a/integration-test/src/main/java/org/apache/iotdb/it/env/MppConfig.java
+++ b/integration-test/src/main/java/org/apache/iotdb/it/env/MppConfig.java
@@ -342,17 +342,20 @@ public class MppConfig implements BaseConfig {
}
@Override
- public BaseConfig setEnableRatisLeaderBalance(boolean enableRatisLeaderBalance) {
+ public BaseConfig setEnableAutoLeaderBalanceForRatisConsensus(
+ boolean enableAutoLeaderBalanceForRatisConsensus) {
confignodeProperties.setProperty(
- "enable_auto_leader_balance_for_ratis", String.valueOf(enableRatisLeaderBalance));
+ "enable_auto_leader_balance_for_ratis_consensus",
+ String.valueOf(enableAutoLeaderBalanceForRatisConsensus));
return this;
}
@Override
- public BaseConfig setEnableIoTConsensusLeaderBalance(boolean enableIoTConsensusLeaderBalance) {
+ public BaseConfig setEnableAutoLeaderBalanceForIoTConsensus(
+ boolean enableAutoLeaderBalanceForIoTConsensus) {
confignodeProperties.setProperty(
"enable_auto_leader_balance_for_iot_consensus",
- String.valueOf(enableIoTConsensusLeaderBalance));
+ String.valueOf(enableAutoLeaderBalanceForIoTConsensus));
return this;
}
diff --git a/integration-test/src/main/java/org/apache/iotdb/itbase/env/BaseConfig.java b/integration-test/src/main/java/org/apache/iotdb/itbase/env/BaseConfig.java
index 808ca299bd..877ee4924a 100644
--- a/integration-test/src/main/java/org/apache/iotdb/itbase/env/BaseConfig.java
+++ b/integration-test/src/main/java/org/apache/iotdb/itbase/env/BaseConfig.java
@@ -363,19 +363,21 @@ public interface BaseConfig {
return 10000;
}
- default BaseConfig setEnableRatisLeaderBalance(boolean enableRatisLeaderBalance) {
+ default BaseConfig setEnableAutoLeaderBalanceForRatisConsensus(
+ boolean enableAutoLeaderBalanceForRatisConsensus) {
return this;
}
- default boolean isEnableRatisLeaderBalance() {
+ default boolean isEnableAutoLeaderBalanceForRatisConsensus() {
return false;
}
- default BaseConfig setEnableIoTConsensusLeaderBalance(boolean enableIoTConsensusLeaderBalance) {
+ default BaseConfig setEnableAutoLeaderBalanceForIoTConsensus(
+ boolean enableAutoLeaderBalanceForIoTConsensus) {
return this;
}
- default boolean isEnableIoTConsensusLeaderBalance() {
+ default boolean isEnableAutoLeaderBalanceForIoTConsensus() {
return true;
}
diff --git a/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterRegionLeaderBalancingIT.java b/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterRegionLeaderBalancingIT.java
index b7cd1af7e7..8fe1e11bd8 100644
--- a/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterRegionLeaderBalancingIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterRegionLeaderBalancingIT.java
@@ -66,8 +66,8 @@ public class IoTDBClusterRegionLeaderBalancingIT {
private static final BaseConfig CONF = ConfigFactory.getConfig();
- protected static boolean originalEnableRatisLeaderBalance;
- protected static boolean originalEnableIoTConsensusLeaderBalance;
+ protected static boolean originalEnableAutoLeaderBalanceForRatisConsensus;
+ protected static boolean originalEnableAutoLeaderBalancerForIoTConsensus;
protected static String originalSchemaRegionConsensusProtocolClass;
private static final String testSchemaRegionConsensusProtocolClass =
@@ -83,10 +83,12 @@ public class IoTDBClusterRegionLeaderBalancingIT {
@BeforeClass
public static void setUp() {
- originalEnableRatisLeaderBalance = CONF.isEnableRatisLeaderBalance();
- CONF.setEnableRatisLeaderBalance(true);
- originalEnableIoTConsensusLeaderBalance = CONF.isEnableIoTConsensusLeaderBalance();
- CONF.setEnableIoTConsensusLeaderBalance(true);
+ originalEnableAutoLeaderBalanceForRatisConsensus =
+ CONF.isEnableAutoLeaderBalanceForRatisConsensus();
+ CONF.setEnableAutoLeaderBalanceForRatisConsensus(true);
+ originalEnableAutoLeaderBalancerForIoTConsensus =
+ CONF.isEnableAutoLeaderBalanceForIoTConsensus();
+ CONF.setEnableAutoLeaderBalanceForIoTConsensus(true);
originalSchemaRegionConsensusProtocolClass = CONF.getSchemaRegionConsensusProtocolClass();
CONF.setSchemaRegionConsensusProtocolClass(testSchemaRegionConsensusProtocolClass);
@@ -102,8 +104,9 @@ public class IoTDBClusterRegionLeaderBalancingIT {
@AfterClass
public static void tearDown() {
- CONF.setEnableRatisLeaderBalance(originalEnableRatisLeaderBalance);
- CONF.setEnableIoTConsensusLeaderBalance(originalEnableIoTConsensusLeaderBalance);
+ CONF.setEnableAutoLeaderBalanceForRatisConsensus(
+ originalEnableAutoLeaderBalanceForRatisConsensus);
+ CONF.setEnableAutoLeaderBalanceForIoTConsensus(originalEnableAutoLeaderBalancerForIoTConsensus);
CONF.setSchemaRegionConsensusProtocolClass(originalSchemaRegionConsensusProtocolClass);
CONF.setDataRegionConsensusProtocolClass(originalDataRegionConsensusProtocolClass);
diff --git a/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBPartitionDurableIT.java b/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBPartitionDurableIT.java
index 0b77cfbf86..731477a326 100644
--- a/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBPartitionDurableIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBPartitionDurableIT.java
@@ -220,13 +220,13 @@ public class IoTDBPartitionDurableIT {
TimeUnit.SECONDS.sleep(1);
}
- /* Test getOrCreateSchemaPartition, the result should be NO_AVAILABLE_REGION_GROUP */
+ /* Test getOrCreateSchemaPartition, the result should be NO_ENOUGH_DATANODE */
schemaPartitionReq =
new TSchemaPartitionReq()
.setPathPatternTree(ConfigNodeTestUtils.generatePatternTreeBuffer(new String[] {d1}));
schemaPartitionTableResp = client.getOrCreateSchemaPartitionTable(schemaPartitionReq);
Assert.assertEquals(
- TSStatusCode.NO_AVAILABLE_REGION_GROUP.getStatusCode(),
+ TSStatusCode.NO_ENOUGH_DATANODE.getStatusCode(),
schemaPartitionTableResp.getStatus().getCode());
/* Register a new DataNode */
diff --git a/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBPartitionGetterIT.java b/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBPartitionGetterIT.java
index 6bf8b3d237..61c87a3f70 100644
--- a/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBPartitionGetterIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBPartitionGetterIT.java
@@ -39,6 +39,8 @@ import org.apache.iotdb.confignode.rpc.thrift.TSchemaNodeManagementResp;
import org.apache.iotdb.confignode.rpc.thrift.TSchemaPartitionReq;
import org.apache.iotdb.confignode.rpc.thrift.TSchemaPartitionTableResp;
import org.apache.iotdb.confignode.rpc.thrift.TSetStorageGroupReq;
+import org.apache.iotdb.confignode.rpc.thrift.TShowRegionReq;
+import org.apache.iotdb.confignode.rpc.thrift.TShowRegionResp;
import org.apache.iotdb.confignode.rpc.thrift.TShowStorageGroupResp;
import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
import org.apache.iotdb.consensus.ConsensusFactory;
@@ -66,6 +68,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
import static org.apache.iotdb.confignode.it.utils.ConfigNodeTestUtils.generatePatternTreeBuffer;
@@ -375,37 +378,56 @@ public class IoTDBPartitionGetterIT {
try (SyncConfigNodeIServiceClient client =
(SyncConfigNodeIServiceClient) EnvFactory.getEnv().getLeaderConfigNodeConnection()) {
- // Test getSlots api
- TGetRegionIdReq getRegionIdReq;
+ // Test getRegionId
+ TGetRegionIdReq getRegionIdReq = null;
TGetRegionIdResp getRegionIdResp;
-
TSeriesPartitionSlot seriesPartitionSlot = new TSeriesPartitionSlot(0);
TTimePartitionSlot timePartitionSlot = new TTimePartitionSlot(0L);
-
- getRegionIdReq =
- new TGetRegionIdReq(sg0, TConsensusGroupType.DataRegion, seriesPartitionSlot);
- getRegionIdReq.setTimeSlotId(timePartitionSlot);
- getRegionIdResp = client.getRegionId(getRegionIdReq);
- Assert.assertEquals(
- TSStatusCode.SUCCESS_STATUS.getStatusCode(), getRegionIdResp.status.getCode());
- Assert.assertEquals(1, getRegionIdResp.getDataRegionIdListSize());
-
- getRegionIdReq.setType(TConsensusGroupType.SchemaRegion);
- getRegionIdResp = client.getRegionId(getRegionIdReq);
- Assert.assertEquals(
- TSStatusCode.ILLEGAL_PARAMETER.getStatusCode(), getRegionIdResp.status.getCode());
-
- getRegionIdReq.setType(TConsensusGroupType.ConfigNodeRegion);
- getRegionIdResp = client.getRegionId(getRegionIdReq);
- Assert.assertEquals(
- TSStatusCode.ILLEGAL_PARAMETER.getStatusCode(), getRegionIdResp.status.getCode());
-
- getRegionIdReq.unsetTimeSlotId();
- getRegionIdReq.setType(TConsensusGroupType.DataRegion);
- getRegionIdResp = client.getRegionId(getRegionIdReq);
- Assert.assertEquals(
- TSStatusCode.SUCCESS_STATUS.getStatusCode(), getRegionIdResp.status.getCode());
- Assert.assertEquals(testLeastDataRegionGroupNum, getRegionIdResp.getDataRegionIdListSize());
+ for (int i = 0; i < storageGroupNum; i++) {
+ String curSg = sg + i;
+
+ // Get RegionIds of specified PartitionSlot
+ getRegionIdReq =
+ new TGetRegionIdReq(sg0, TConsensusGroupType.DataRegion, seriesPartitionSlot);
+ getRegionIdReq.setTimeSlotId(timePartitionSlot);
+ getRegionIdResp = client.getRegionId(getRegionIdReq);
+ Assert.assertEquals(
+ TSStatusCode.SUCCESS_STATUS.getStatusCode(), getRegionIdResp.status.getCode());
+ Assert.assertEquals(1, getRegionIdResp.getDataRegionIdListSize());
+
+ // Get RegionId with wrong PartitionSlot
+ getRegionIdReq.setType(TConsensusGroupType.SchemaRegion);
+ getRegionIdResp = client.getRegionId(getRegionIdReq);
+ Assert.assertEquals(
+ TSStatusCode.ILLEGAL_PARAMETER.getStatusCode(), getRegionIdResp.status.getCode());
+
+ // Get RegionId with wrong RegionType
+ getRegionIdReq.setType(TConsensusGroupType.ConfigNodeRegion);
+ getRegionIdResp = client.getRegionId(getRegionIdReq);
+ Assert.assertEquals(
+ TSStatusCode.ILLEGAL_PARAMETER.getStatusCode(), getRegionIdResp.status.getCode());
+
+ // Get all RegionIds within one SeriesSlot
+ AtomicInteger regionCount = new AtomicInteger(0);
+ TShowRegionResp showRegionResp = client.showRegion(new TShowRegionReq());
+ showRegionResp
+ .getRegionInfoList()
+ .forEach(
+ regionInfo -> {
+ if (TConsensusGroupType.DataRegion.equals(
+ regionInfo.getConsensusGroupId().getType())
+ && regionInfo.getStorageGroup().equals(curSg)) {
+ regionCount.getAndIncrement();
+ }
+ });
+ getRegionIdReq.unsetTimeSlotId();
+ getRegionIdReq.setType(TConsensusGroupType.DataRegion);
+ getRegionIdResp = client.getRegionId(getRegionIdReq);
+ Assert.assertEquals(
+ TSStatusCode.SUCCESS_STATUS.getStatusCode(), getRegionIdResp.status.getCode());
+ Assert.assertEquals(
+ regionCount.get() / testReplicationFactor, getRegionIdResp.getDataRegionIdListSize());
+ }
final String d00 = sg0 + ".d0.s";
final String d01 = sg0 + ".d1.s";
@@ -468,7 +490,7 @@ public class IoTDBPartitionGetterIT {
Assert.assertEquals(
TSStatusCode.SUCCESS_STATUS.getStatusCode(), getSeriesSlotListResp.status.getCode());
Assert.assertEquals(
- testSeriesPartitionSlotNum, getSeriesSlotListResp.getSeriesSlotListSize());
+ testSeriesPartitionSlotNum + 2, getSeriesSlotListResp.getSeriesSlotListSize());
getSeriesSlotListReq.setType(TConsensusGroupType.ConfigNodeRegion);
@@ -476,7 +498,7 @@ public class IoTDBPartitionGetterIT {
Assert.assertEquals(
TSStatusCode.SUCCESS_STATUS.getStatusCode(), getSeriesSlotListResp.status.getCode());
Assert.assertEquals(
- testSeriesPartitionSlotNum, getSeriesSlotListResp.getSeriesSlotListSize());
+ testSeriesPartitionSlotNum + 2, getSeriesSlotListResp.getSeriesSlotListSize());
getSeriesSlotListReq.setType(TConsensusGroupType.SchemaRegion);