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

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


The following commit(s) were added to refs/heads/master by this push:
     new b1ccd3696a9 [fix](memory) Fix adjust cache capacity (#45603)
b1ccd3696a9 is described below

commit b1ccd3696a906c2d295b5af5e21665674d56a96a
Author: Xinyi Zou <zouxi...@selectdb.com>
AuthorDate: Thu Dec 19 19:56:19 2024 +0800

    [fix](memory) Fix adjust cache capacity (#45603)
    
    ### What problem does this PR solve?
    
    If the cache capacity adjustment is not completed within 500ms
    (conf::memory_gc_sleep_time_ms), the next adjustment will be skipped.
    
    In some scenarios, after Memory GC adjusts the cache capacity to 0, the
    next adjustment to restore the cache capacity is skipped, the cache
    capacity will remain at 0 for a long time.
---
 be/src/common/daemon.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/be/src/common/daemon.cpp b/be/src/common/daemon.cpp
index 12bf1749a56..2aaa58f4feb 100644
--- a/be/src/common/daemon.cpp
+++ b/be/src/common/daemon.cpp
@@ -230,6 +230,11 @@ void refresh_memory_state_after_memory_change() {
 }
 
 void refresh_cache_capacity() {
+    if (doris::GlobalMemoryArbitrator::cache_adjust_capacity_notify.load(
+                std::memory_order_relaxed)) {
+        // the last cache capacity adjustment has not been completed.
+        return;
+    }
     if (refresh_cache_capacity_sleep_time_ms <= 0) {
         auto cache_capacity_reduce_mem_limit = int64_t(
                 doris::MemInfo::soft_mem_limit() * 
config::cache_capacity_reduce_mem_limit_frac);
@@ -247,6 +252,8 @@ void refresh_cache_capacity() {
                     new_cache_capacity_adjust_weighted;
             doris::GlobalMemoryArbitrator::notify_cache_adjust_capacity();
             refresh_cache_capacity_sleep_time_ms = 
config::memory_gc_sleep_time_ms;
+        } else {
+            refresh_cache_capacity_sleep_time_ms = 0;
         }
     }
     refresh_cache_capacity_sleep_time_ms -= 
config::memory_maintenance_sleep_time_ms;


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

Reply via email to