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

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


The following commit(s) were added to refs/heads/branch-4.0 by this push:
     new c4f01746b0f branch-4.0: [improve](tools) optimize 
calculate_process_numbers logic in fdb_ctl.sh #60292 (#60384)
c4f01746b0f is described below

commit c4f01746b0f9ca8c5f98e1ea5ba49016ad6ef485
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Jan 30 16:36:10 2026 +0800

    branch-4.0: [improve](tools) optimize calculate_process_numbers logic in 
fdb_ctl.sh #60292 (#60384)
    
    Cherry-picked from #60292
    
    Co-authored-by: walter <[email protected]>
---
 tools/fdb/fdb_ctl.sh | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/tools/fdb/fdb_ctl.sh b/tools/fdb/fdb_ctl.sh
index 841f198bf12..d3d2f08aef5 100755
--- a/tools/fdb/fdb_ctl.sh
+++ b/tools/fdb/fdb_ctl.sh
@@ -180,30 +180,28 @@ calculate_process_numbers() {
 
     # Find maximum number of processes while maintaining the specified ratio
     while true; do
-        # Calculate process counts based on the ratio
-        storage_processes=$((storage_processes + num_storage))
-        stateless_processes=$((storage_processes * num_stateless / 
num_storage))
-        log_processes=$((storage_processes * num_log / num_storage))
+        # Calculate candidate process counts based on the ratio
+        local new_storage_processes=$((storage_processes + num_storage))
+        local new_stateless_processes=$((new_storage_processes * num_stateless 
/ num_storage))
+        local new_log_processes=$((new_storage_processes * num_log / 
num_storage))
 
         # Calculate total CPUs used
-        local total_cpu_used=$((storage_processes + stateless_processes + 
log_processes))
+        local total_cpu_used=$((new_storage_processes + 
new_stateless_processes + new_log_processes))
 
         # Check memory constraint
-        local total_memory_used=$(((MEMORY_STORAGE_GB * storage_processes) + 
(MEMORY_STATELESS_GB * stateless_processes) + (MEMORY_LOG_GB * log_processes)))
+        local total_memory_used=$(((MEMORY_STORAGE_GB * new_storage_processes) 
+ (MEMORY_STATELESS_GB * new_stateless_processes) + (MEMORY_LOG_GB * 
new_log_processes)))
 
         # Check datadir limits
-        if ((storage_processes > storage_process_num_limit || log_processes > 
log_process_num_limit)); then
+        if ((new_storage_processes > storage_process_num_limit || 
new_log_processes > log_process_num_limit)); then
             break
         fi
 
         # Check overall constraints
         if ((total_memory_used <= memory_limit_gb && total_cpu_used <= 
cpu_cores_limit)); then
-            continue
+            storage_processes=${new_storage_processes}
+            stateless_processes=${new_stateless_processes}
+            log_processes=${new_log_processes}
         else
-            # If constraints are violated, revert back
-            storage_processes=$((storage_processes - num_storage))
-            stateless_processes=$((storage_processes * num_stateless / 
num_storage))
-            log_processes=$((storage_processes * num_log / num_storage))
             break
         fi
     done


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

Reply via email to