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

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 7f10652966e [fix](tablet sched) disable disk balance for single 
replica (#29576) (#29756)
7f10652966e is described below

commit 7f10652966ea13f4a1b0d1cd04a8546d8b304a05
Author: Kang <[email protected]>
AuthorDate: Wed Jan 10 19:13:57 2024 +0800

    [fix](tablet sched) disable disk balance for single replica (#29576) 
(#29756)
    
    Co-authored-by: yujun <[email protected]>
---
 fe/fe-common/src/main/java/org/apache/doris/common/Config.java      | 6 ++++++
 fe/fe-core/src/main/java/org/apache/doris/clone/DiskRebalancer.java | 5 +++++
 2 files changed, 11 insertions(+)

diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java 
b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
index 025b6f91bf8..0941ae047ef 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
@@ -1023,6 +1023,12 @@ public class Config extends ConfigBase {
     @ConfField(mutable = true, masterOnly = true)
     public static boolean disable_disk_balance = false;
 
+    /**
+     * if set to false, TabletScheduler will not do disk balance for replica 
num = 1.
+     */
+    @ConfField(mutable = true, masterOnly = true)
+    public static boolean enable_disk_balance_for_single_replica = false;
+
     // if the number of scheduled tablets in TabletScheduler exceed 
max_scheduling_tablets
     // skip checking.
     @ConfField(mutable = true, masterOnly = true)
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/clone/DiskRebalancer.java 
b/fe/fe-core/src/main/java/org/apache/doris/clone/DiskRebalancer.java
index bec896c5dfb..fc9fb0c7a65 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/clone/DiskRebalancer.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/clone/DiskRebalancer.java
@@ -26,6 +26,7 @@ import org.apache.doris.clone.SchedException.Status;
 import org.apache.doris.clone.TabletSchedCtx.BalanceType;
 import org.apache.doris.clone.TabletSchedCtx.Priority;
 import org.apache.doris.clone.TabletScheduler.PathSlot;
+import org.apache.doris.common.Config;
 import org.apache.doris.common.FeConstants;
 import org.apache.doris.system.SystemInfoService;
 import org.apache.doris.thrift.TStorageMedium;
@@ -208,6 +209,10 @@ public class DiskRebalancer extends Rebalancer {
                 if (alternativeTabletIds.contains(tabletId)) {
                     continue;
                 }
+                if (!Config.enable_disk_balance_for_single_replica
+                        && 
invertedIndex.getReplicasByTabletId(tabletId).size() <= 1) {
+                    continue;
+                }
                 Replica replica = invertedIndex.getReplica(tabletId, 
beStat.getBeId());
                 if (replica == null) {
                     continue;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to