You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by zh...@apache.org on 2020/01/06 12:15:48 UTC

[incubator-doris] branch master updated: Make MAX_SCHEDULING_TABLETS and MAX_BALANCING_TABLETS configurable (#2670)

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

zhaoc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 9ca7fdf  Make MAX_SCHEDULING_TABLETS and MAX_BALANCING_TABLETS configurable (#2670)
9ca7fdf is described below

commit 9ca7fdfe1ca08055de7c5a044c45d9e73034a59e
Author: kangkaisen <ka...@apache.org>
AuthorDate: Mon Jan 6 20:15:38 2020 +0800

    Make MAX_SCHEDULING_TABLETS and MAX_BALANCING_TABLETS configurable (#2670)
---
 fe/src/main/java/org/apache/doris/clone/TabletChecker.java |  7 ++++---
 .../main/java/org/apache/doris/clone/TabletScheduler.java  | 14 ++++----------
 fe/src/main/java/org/apache/doris/common/Config.java       | 10 ++++++++++
 3 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/fe/src/main/java/org/apache/doris/clone/TabletChecker.java b/fe/src/main/java/org/apache/doris/clone/TabletChecker.java
index fdf7612..1d9ac6d 100644
--- a/fe/src/main/java/org/apache/doris/clone/TabletChecker.java
+++ b/fe/src/main/java/org/apache/doris/clone/TabletChecker.java
@@ -31,6 +31,7 @@ import org.apache.doris.catalog.Table.TableType;
 import org.apache.doris.catalog.Tablet;
 import org.apache.doris.catalog.Tablet.TabletStatus;
 import org.apache.doris.clone.TabletScheduler.AddResult;
+import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.Pair;
 import org.apache.doris.common.util.MasterDaemon;
@@ -157,10 +158,10 @@ public class TabletChecker extends MasterDaemon {
     protected void runAfterCatalogReady() {
         int pendingNum = tabletScheduler.getPendingNum();
         int runningNum = tabletScheduler.getRunningNum();
-        if (pendingNum > TabletScheduler.MAX_SCHEDULING_TABLETS
-                || runningNum > TabletScheduler.MAX_SCHEDULING_TABLETS) {
+        if (pendingNum > Config.max_scheduling_tablets
+                || runningNum > Config.max_scheduling_tablets) {
             LOG.info("too many tablets are being scheduled. pending: {}, running: {}, limit: {}. skip check",
-                    pendingNum, runningNum, TabletScheduler.MAX_SCHEDULING_TABLETS);
+                    pendingNum, runningNum, Config.max_scheduling_tablets);
             return;
         }
         
diff --git a/fe/src/main/java/org/apache/doris/clone/TabletScheduler.java b/fe/src/main/java/org/apache/doris/clone/TabletScheduler.java
index 006e6d8..e8dbee3 100644
--- a/fe/src/main/java/org/apache/doris/clone/TabletScheduler.java
+++ b/fe/src/main/java/org/apache/doris/clone/TabletScheduler.java
@@ -96,13 +96,6 @@ public class TabletScheduler extends MasterDaemon {
 
     public static final int BALANCE_SLOT_NUM_FOR_PATH = 2;
 
-    // if the number of scheduled tablets in TabletScheduler exceed this threshold,
-    // skip checking.
-    public static final int MAX_SCHEDULING_TABLETS = 2000;
-    // if the number of balancing tablets in TabletScheduler exceed this threshold,
-    // no more balance check
-    public static final int MAX_BALANCING_TABLETS = 100;
-
     /*
      * Tablet is added to pendingTablets as well it's id in allTabletIds.
      * TabletScheduler will take tablet from pendingTablets but will not remove it's id from allTabletIds when
@@ -220,7 +213,8 @@ public class TabletScheduler extends MasterDaemon {
         // and number of scheduling tablets exceed the limit,
         // refuse to add.
         if (tablet.getType() != TabletSchedCtx.Type.BALANCE && !force
-                && (pendingTablets.size() > MAX_SCHEDULING_TABLETS || runningTablets.size() > MAX_SCHEDULING_TABLETS)) {
+                && (pendingTablets.size() > Config.max_scheduling_tablets
+                || runningTablets.size() > Config.max_scheduling_tablets)) {
             return AddResult.LIMIT_EXCEED;
         }
 
@@ -976,9 +970,9 @@ public class TabletScheduler extends MasterDaemon {
         }
         
         long numOfBalancingTablets = getBalanceTabletsNumber();
-        if (numOfBalancingTablets > MAX_BALANCING_TABLETS) {
+        if (numOfBalancingTablets > Config.max_balancing_tablets) {
             LOG.info("number of balancing tablets {} exceed limit: {}, skip selecting tablets for balance",
-                    numOfBalancingTablets, MAX_BALANCING_TABLETS);
+                    numOfBalancingTablets, Config.max_balancing_tablets);
             return;
         }
 
diff --git a/fe/src/main/java/org/apache/doris/common/Config.java b/fe/src/main/java/org/apache/doris/common/Config.java
index 44fa9eb..48cfee1 100644
--- a/fe/src/main/java/org/apache/doris/common/Config.java
+++ b/fe/src/main/java/org/apache/doris/common/Config.java
@@ -846,6 +846,16 @@ public class Config extends ConfigBase {
      */
     @ConfField(mutable = true, masterOnly = true)
     public static boolean disable_balance = false;
+
+    // if the number of scheduled tablets in TabletScheduler exceed max_scheduling_tablets
+    // skip checking.
+    @ConfField(mutable = true, masterOnly = true)
+    public static int max_scheduling_tablets = 2000;
+
+    // if the number of balancing tablets in TabletScheduler exceed max_balancing_tablets,
+    // no more balance check
+    @ConfField(mutable = true, masterOnly = true)
+    public static int max_balancing_tablets = 100;
     
     // This threshold is to avoid piling up too many report task in FE, which may cause OOM exception.
     // In some large Doris cluster, eg: 100 Backends with ten million replicas, a tablet report may cost


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org