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 2023/01/31 08:59:30 UTC

[iotdb] branch beyyes/rel_1.0_cp_leastDataRegionGroupNum created (now 3a60bf6ad3)

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

caogaofei pushed a change to branch beyyes/rel_1.0_cp_leastDataRegionGroupNum
in repository https://gitbox.apache.org/repos/asf/iotdb.git


      at 3a60bf6ad3 add isLeastDataRegionGroupNumSetByUser judgement

This branch includes the following new commits:

     new 3a60bf6ad3 add isLeastDataRegionGroupNumSetByUser judgement

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[iotdb] 01/01: add isLeastDataRegionGroupNumSetByUser judgement

Posted by ca...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

caogaofei pushed a commit to branch beyyes/rel_1.0_cp_leastDataRegionGroupNum
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 3a60bf6ad3c0cfcaa7460d925dd709e1df16d245
Author: Beyyes <cg...@foxmail.com>
AuthorDate: Tue Jan 31 16:59:16 2023 +0800

    add isLeastDataRegionGroupNumSetByUser judgement
---
 .../iotdb/confignode/conf/ConfigNodeConfig.java    | 11 +++++++++
 .../confignode/conf/ConfigNodeDescriptor.java      | 10 ++++-----
 .../confignode/manager/ClusterSchemaManager.java   | 26 ++++++++++++----------
 3 files changed, 30 insertions(+), 17 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 552b052ba4..55ff24d54d 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
@@ -101,6 +101,9 @@ public class ConfigNodeConfig {
   /** The least number of DataRegionGroup for each Database. */
   private volatile int leastDataRegionGroupNum = 5;
 
+  /** Indicate whether the leastDataRegionGroupNum is set by user, if true, lock it. */
+  private volatile boolean leastDataRegionGroupNumSetByUser = false;
+
   /** RegionGroup allocate policy. */
   private RegionBalancer.RegionGroupAllocatePolicy regionGroupAllocatePolicy =
       RegionBalancer.RegionGroupAllocatePolicy.GREEDY;
@@ -540,6 +543,14 @@ public class ConfigNodeConfig {
     this.leastDataRegionGroupNum = leastDataRegionGroupNum;
   }
 
+  public boolean isLeastDataRegionGroupNumSetByUser() {
+    return leastDataRegionGroupNumSetByUser;
+  }
+
+  public void setLeastDataRegionGroupNumSetByUser(boolean leastDataRegionGroupNumSetByUser) {
+    this.leastDataRegionGroupNumSetByUser = leastDataRegionGroupNumSetByUser;
+  }
+
   public RegionBalancer.RegionGroupAllocatePolicy getRegionGroupAllocatePolicy() {
     return regionGroupAllocatePolicy;
   }
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
index 4c1873258a..cb0c94aa21 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
@@ -254,11 +254,11 @@ public class ConfigNodeDescriptor {
                     "data_region_per_processor", String.valueOf(conf.getDataRegionPerProcessor()))
                 .trim()));
 
-    conf.setLeastDataRegionGroupNum(
-        Integer.parseInt(
-            properties.getProperty(
-                "least_data_region_group_num", String.valueOf(conf.getLeastDataRegionGroupNum()))));
-
+    if (properties.getProperty("least_data_region_group_num") != null) {
+      conf.setLeastDataRegionGroupNum(
+          Integer.parseInt(properties.getProperty("least_data_region_group_num")));
+      conf.setLeastDataRegionGroupNumSetByUser(true);
+    }
     try {
       conf.setRegionAllocateStrategy(
           RegionBalancer.RegionGroupAllocatePolicy.valueOf(
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
index 91746ace72..6e8250b87d 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ClusterSchemaManager.java
@@ -326,18 +326,20 @@ public class ClusterSchemaManager {
     // Adjust least_data_region_group_num
     // TODO: The least_data_region_group_num should be maintained separately by different
     // TODO: StorageGroup
-    int leastDataRegionGroupNum =
-        (int)
-            Math.ceil(
-                (double) totalCpuCoreNum
-                    / (double) (storageGroupNum * CONF.getDataReplicationFactor()));
-    if (leastDataRegionGroupNum < CONF.getLeastDataRegionGroupNum()) {
-      // The leastDataRegionGroupNum should be the maximum integer that satisfy:
-      // 1 <= leastDataRegionGroupNum <= 5(default)
-      CONF.setLeastDataRegionGroupNum(leastDataRegionGroupNum);
-      LOGGER.info(
-          "[AdjustRegionGroupNum] The least number of DataRegionGroups per Database is adjusted to: {}",
-          leastDataRegionGroupNum);
+    if (!CONF.isLeastDataRegionGroupNumSetByUser()) {
+      int leastDataRegionGroupNum =
+          (int)
+              Math.ceil(
+                  (double) totalCpuCoreNum
+                      / (double) (storageGroupNum * CONF.getDataReplicationFactor()));
+      if (leastDataRegionGroupNum < CONF.getLeastDataRegionGroupNum()) {
+        // The leastDataRegionGroupNum should be the maximum integer that satisfy:
+        // 1 <= leastDataRegionGroupNum <= 5(default)
+        CONF.setLeastDataRegionGroupNum(leastDataRegionGroupNum);
+        LOGGER.info(
+            "[AdjustRegionGroupNum] The least number of DataRegionGroups per Database is adjusted to: {}",
+            leastDataRegionGroupNum);
+      }
     }
 
     AdjustMaxRegionGroupNumPlan adjustMaxRegionGroupNumPlan = new AdjustMaxRegionGroupNumPlan();