You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ca...@apache.org on 2022/12/01 09:48:00 UTC

[iotdb] branch rel/1.0 updated: [To rel/1.0] add IT for IoTDBCustomRegionGroupExtension (#8264)

This is an automated email from the ASF dual-hosted git repository.

caogaofei pushed a commit to branch rel/1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/1.0 by this push:
     new 1e3665193f [To rel/1.0] add IT for IoTDBCustomRegionGroupExtension (#8264)
1e3665193f is described below

commit 1e3665193f87e3a06a7e839beb4bb327a7eb42f2
Author: Beyyes <cg...@foxmail.com>
AuthorDate: Thu Dec 1 17:47:55 2022 +0800

    [To rel/1.0] add IT for IoTDBCustomRegionGroupExtension (#8264)
---
 .../iotdb/confignode/conf/ConfigNodeConfig.java    |  2 +-
 .../IoTDBCustomRegionGroupExtensionIT.java         | 39 ++++++++++++++++++----
 .../iotdb/commons/service/StartupChecks.java       |  2 +-
 3 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
index 127a2c3680..6f6fe727f8 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
@@ -78,7 +78,7 @@ public class ConfigNodeConfig {
 
   /** The policy of extension SchemaRegionGroup for each Database. */
   private RegionGroupExtensionPolicy schemaRegionGroupExtensionPolicy =
-      RegionGroupExtensionPolicy.CUSTOM;
+      RegionGroupExtensionPolicy.AUTO;
 
   /** The number of SchemaRegionGroups for each Database when using CUSTOM extension policy */
   private int schemaRegionGroupPerDatabase = 1;
diff --git a/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBCustomRegionGroupExtensionIT.java b/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBCustomRegionGroupExtensionIT.java
index 6f316a8a5b..effb799fbc 100644
--- a/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBCustomRegionGroupExtensionIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/confignode/it/partition/IoTDBCustomRegionGroupExtensionIT.java
@@ -18,12 +18,16 @@
  */
 package org.apache.iotdb.confignode.it.partition;
 
+import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType;
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot;
 import org.apache.iotdb.commons.client.sync.SyncConfigNodeIServiceClient;
+import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.confignode.it.utils.ConfigNodeTestUtils;
 import org.apache.iotdb.confignode.rpc.thrift.TDataPartitionReq;
 import org.apache.iotdb.confignode.rpc.thrift.TDataPartitionTableResp;
+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;
@@ -46,9 +50,12 @@ import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 
 import java.io.IOException;
+import java.nio.ByteBuffer;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import static org.apache.iotdb.confignode.it.utils.ConfigNodeTestUtils.generatePatternTreeBuffer;
+
 @RunWith(IoTDBTestRunner.class)
 @Category({ClusterIT.class})
 public class IoTDBCustomRegionGroupExtensionIT {
@@ -67,7 +74,7 @@ public class IoTDBCustomRegionGroupExtensionIT {
   private static int originalSchemaRegionGroupPerDatabase;
   private static final int testSchemaRegionGroupPerDatabase = 2;
   private static int originalDataRegionGroupPerDatabase;
-  private static final int testDataRegionGroupPerDatabase = 2;
+  private static final int testDataRegionGroupPerDatabase = 3;
 
   private static int originalSchemaReplicationFactor;
   private static int originalDataReplicationFactor;
@@ -124,8 +131,8 @@ public class IoTDBCustomRegionGroupExtensionIT {
   }
 
   @Test
-  public void testCustomDataRegionGroupExtensionPolicy()
-      throws IOException, InterruptedException, TException {
+  public void testCustomRegionGroupExtensionPolicy()
+      throws IOException, InterruptedException, TException, IllegalPathException {
     try (SyncConfigNodeIServiceClient client =
         (SyncConfigNodeIServiceClient) EnvFactory.getEnv().getLeaderConfigNodeConnection()) {
 
@@ -147,21 +154,39 @@ public class IoTDBCustomRegionGroupExtensionIT {
             TSStatusCode.SUCCESS_STATUS.getStatusCode(),
             dataPartitionTableResp.getStatus().getCode());
 
+        ByteBuffer patternTree = generatePatternTreeBuffer(new String[] {curSg + ".d1.s1"});
+        TSchemaPartitionReq schemaPartitionReq = new TSchemaPartitionReq(patternTree);
+        TSchemaPartitionTableResp schemaPartitionTableResp =
+            client.getOrCreateSchemaPartitionTable(schemaPartitionReq);
+        Assert.assertEquals(
+            TSStatusCode.SUCCESS_STATUS.getStatusCode(),
+            schemaPartitionTableResp.getStatus().getCode());
+
         /* Check the number of DataRegionGroups */
         TShowRegionResp showRegionReq = client.showRegion(new TShowRegionReq());
         Assert.assertEquals(
             TSStatusCode.SUCCESS_STATUS.getStatusCode(), showRegionReq.getStatus().getCode());
-        AtomicInteger regionCount = new AtomicInteger(0);
+        AtomicInteger dataRegionCount = new AtomicInteger(0);
+        AtomicInteger schemaRegionCount = new AtomicInteger(0);
         showRegionReq
             .getRegionInfoList()
             .forEach(
                 regionInfo -> {
-                  if (regionInfo.getStorageGroup().equals(curSg)) {
-                    regionCount.getAndIncrement();
+                  if (regionInfo.getStorageGroup().equals(curSg)
+                      && TConsensusGroupType.DataRegion.equals(
+                          regionInfo.getConsensusGroupId().getType())) {
+                    dataRegionCount.getAndIncrement();
+                  }
+                  if (regionInfo.getStorageGroup().equals(curSg)
+                      && TConsensusGroupType.SchemaRegion.equals(
+                          regionInfo.getConsensusGroupId().getType())) {
+                    schemaRegionCount.getAndIncrement();
                   }
                 });
         Assert.assertEquals(
-            testDataRegionGroupPerDatabase * testReplicationFactor, regionCount.get());
+            testDataRegionGroupPerDatabase * testReplicationFactor, dataRegionCount.get());
+        Assert.assertEquals(
+            testSchemaRegionGroupPerDatabase * testReplicationFactor, schemaRegionCount.get());
       }
     }
   }
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupChecks.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupChecks.java
index 17c898a47d..23e9d255d3 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupChecks.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/StartupChecks.java
@@ -37,7 +37,7 @@ public class StartupChecks {
         if (version < IoTDBConstant.MIN_SUPPORTED_JDK_VERSION) {
           throw new StartupException(
               String.format(
-                  "Requires JDK version >= %d, current version is %d",
+                  "Requires JDK version >= %d, current version is %d.",
                   IoTDBConstant.MIN_SUPPORTED_JDK_VERSION, version));
         } else {
           logger.info("JDK version is {}.", version);