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

dataroaring 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 9ee8d95fc8c [enhancement](cloud) make file cache background task 
interval configurable (#49832)
9ee8d95fc8c is described below

commit 9ee8d95fc8ce06412e202b60488390a7a3ecfbd1
Author: zhengyu <zhangzhen...@selectdb.com>
AuthorDate: Tue Apr 15 22:26:51 2025 +0800

    [enhancement](cloud) make file cache background task interval configurable 
(#49832)
---
 be/src/common/config.cpp                   |  2 ++
 be/src/common/config.h                     |  2 ++
 be/src/io/cache/block_file_cache.cpp       | 14 +++++++-------
 be/test/io/cache/block_file_cache_test.cpp | 14 +++++++-------
 4 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/be/src/common/config.cpp b/be/src/common/config.cpp
index 989f677f808..61e14ee95d1 100644
--- a/be/src/common/config.cpp
+++ b/be/src/common/config.cpp
@@ -1090,6 +1090,8 @@ DEFINE_mInt64(cache_lock_held_long_tail_threshold_us, 
"30000000");
 DEFINE_mBool(enable_file_cache_keep_base_compaction_output, "false");
 DEFINE_mInt64(file_cache_remove_block_qps_limit, "1000");
 DEFINE_mInt64(file_cache_background_gc_interval_ms, "100");
+DEFINE_mInt64(file_cache_background_monitor_interval_ms, "5000");
+DEFINE_mInt64(file_cache_background_ttl_gc_interval_ms, "20000");
 
 DEFINE_mInt32(index_cache_entry_stay_time_after_lookup_s, "1800");
 DEFINE_mInt32(inverted_index_cache_stale_sweep_time_sec, "600");
diff --git a/be/src/common/config.h b/be/src/common/config.h
index 6d75679b9d9..6954c04f7d1 100644
--- a/be/src/common/config.h
+++ b/be/src/common/config.h
@@ -1135,6 +1135,8 @@ DECLARE_mInt64(cache_lock_held_long_tail_threshold_us);
 DECLARE_mBool(enable_file_cache_keep_base_compaction_output);
 DECLARE_mInt64(file_cache_remove_block_qps_limit);
 DECLARE_mInt64(file_cache_background_gc_interval_ms);
+DECLARE_mInt64(file_cache_background_monitor_interval_ms);
+DECLARE_mInt64(file_cache_background_ttl_gc_interval_ms);
 // inverted index searcher cache
 // cache entry stay time after lookup
 DECLARE_mInt32(index_cache_entry_stay_time_after_lookup_s);
diff --git a/be/src/io/cache/block_file_cache.cpp 
b/be/src/io/cache/block_file_cache.cpp
index 52e36e42f9f..513ca838ec3 100644
--- a/be/src/io/cache/block_file_cache.cpp
+++ b/be/src/io/cache/block_file_cache.cpp
@@ -1773,9 +1773,9 @@ void BlockFileCache::check_need_evict_cache_in_advance() {
 }
 
 void BlockFileCache::run_background_monitor() {
-    int64_t interval_time_seconds = 20;
     while (!_close) {
-        TEST_SYNC_POINT_CALLBACK("BlockFileCache::set_sleep_time", 
&interval_time_seconds);
+        int64_t interval_ms = 
config::file_cache_background_monitor_interval_ms;
+        TEST_SYNC_POINT_CALLBACK("BlockFileCache::set_sleep_time", 
&interval_ms);
         check_disk_resource_limit();
         if (config::enable_evict_file_cache_in_advance) {
             check_need_evict_cache_in_advance();
@@ -1785,7 +1785,7 @@ void BlockFileCache::run_background_monitor() {
 
         {
             std::unique_lock close_lock(_close_mtx);
-            _close_cv.wait_for(close_lock, 
std::chrono::seconds(interval_time_seconds));
+            _close_cv.wait_for(close_lock, 
std::chrono::milliseconds(interval_ms));
             if (_close) {
                 break;
             }
@@ -1830,12 +1830,12 @@ void BlockFileCache::run_background_monitor() {
 }
 
 void BlockFileCache::run_background_ttl_gc() { // TODO(zhengyu): fix!
-    int64_t interval_time_seconds = 20;
     while (!_close) {
-        TEST_SYNC_POINT_CALLBACK("BlockFileCache::set_sleep_time", 
&interval_time_seconds);
+        int64_t interval_ms = config::file_cache_background_ttl_gc_interval_ms;
+        TEST_SYNC_POINT_CALLBACK("BlockFileCache::set_sleep_time", 
&interval_ms);
         {
             std::unique_lock close_lock(_close_mtx);
-            _close_cv.wait_for(close_lock, 
std::chrono::seconds(interval_time_seconds));
+            _close_cv.wait_for(close_lock, 
std::chrono::milliseconds(interval_ms));
             if (_close) {
                 break;
             }
@@ -1858,7 +1858,7 @@ void BlockFileCache::run_background_gc() {
     FileCacheKey key;
     size_t batch_count = 0;
     while (!_close) {
-        size_t interval_ms = config::file_cache_background_gc_interval_ms;
+        int64_t interval_ms = config::file_cache_background_gc_interval_ms;
         size_t batch_limit = config::file_cache_remove_block_qps_limit * 
interval_ms / 1000;
         {
             std::unique_lock close_lock(_close_mtx);
diff --git a/be/test/io/cache/block_file_cache_test.cpp 
b/be/test/io/cache/block_file_cache_test.cpp
index 4f377c43bbd..94292664926 100644
--- a/be/test/io/cache/block_file_cache_test.cpp
+++ b/be/test/io/cache/block_file_cache_test.cpp
@@ -2173,7 +2173,7 @@ TEST_F(BlockFileCacheTest, ttl_normal) {
     SyncPoint::CallbackGuard guard1;
     sp->set_call_back(
             "BlockFileCache::set_sleep_time",
-            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1; }, 
&guard1);
+            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1000; }, 
&guard1);
     sp->enable_processing();
     TUniqueId query_id;
     query_id.hi = 1;
@@ -2272,7 +2272,7 @@ TEST_F(BlockFileCacheTest, ttl_modify) {
     SyncPoint::CallbackGuard guard1;
     sp->set_call_back(
             "BlockFileCache::set_sleep_time",
-            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1; }, 
&guard1);
+            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1000; }, 
&guard1);
     sp->enable_processing();
     TUniqueId query_id;
     query_id.hi = 1;
@@ -2355,7 +2355,7 @@ TEST_F(BlockFileCacheTest, ttl_modify_memory_storage) {
     SyncPoint::CallbackGuard guard1;
     sp->set_call_back(
             "BlockFileCache::set_sleep_time",
-            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1; }, 
&guard1);
+            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1000; }, 
&guard1);
     sp->enable_processing();
     TUniqueId query_id;
     query_id.hi = 1;
@@ -2996,7 +2996,7 @@ TEST_F(BlockFileCacheTest, recyle_cache_async_ttl) {
     SyncPoint::CallbackGuard guard1;
     sp->set_call_back(
             "BlockFileCache::set_sleep_time",
-            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1; }, 
&guard1);
+            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1000; }, 
&guard1);
     SyncPoint::CallbackGuard guard2;
     sp->set_call_back(
             "BlockFileCache::set_remove_batch",
@@ -3126,7 +3126,7 @@ TEST_F(BlockFileCacheTest, test_factory_1) {
     SyncPoint::CallbackGuard guard1;
     sp->set_call_back(
             "BlockFileCache::set_sleep_time",
-            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1; }, 
&guard1);
+            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1000; }, 
&guard1);
     SyncPoint::CallbackGuard guard2;
     sp->set_call_back(
             "BlockFileCache::set_remove_batch",
@@ -4899,7 +4899,7 @@ TEST_F(BlockFileCacheTest, reset_capacity) {
         sp->clear_call_back("BlockFileCache::set_sleep_time");
     }};
     sp->set_call_back("BlockFileCache::set_sleep_time",
-                      [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1; 
});
+                      [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 
1000; });
     sp->set_call_back("BlockFileCache::set_remove_batch",
                       [](auto&& args) { *try_any_cast<int*>(args[0]) = 2; });
     sp->enable_processing();
@@ -6751,7 +6751,7 @@ TEST_F(BlockFileCacheTest, evict_in_advance) {
     SyncPoint::CallbackGuard guard1;
     sp->set_call_back(
             "BlockFileCache::set_sleep_time",
-            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1; }, 
&guard1);
+            [](auto&& args) { *try_any_cast<int64_t*>(args[0]) = 1000; }, 
&guard1);
     sp->enable_processing();
     fs::create_directories(cache_base_path);
     TUniqueId query_id;


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

Reply via email to