From ef02631a0a33c1606524615b6b994b8765aaebf2 Mon Sep 17 00:00:00 2001 From: Kaijie Chen Date: Thu, 3 Jul 2025 20:50:55 +0800 Subject: [PATCH 1/3] [metrics](warmup) add submitted and finished tablet num bvar --- be/src/cloud/cloud_warm_up_manager.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/be/src/cloud/cloud_warm_up_manager.cpp b/be/src/cloud/cloud_warm_up_manager.cpp index 7a304a872a496b..80105f78126bda 100644 --- a/be/src/cloud/cloud_warm_up_manager.cpp +++ b/be/src/cloud/cloud_warm_up_manager.cpp @@ -48,6 +48,10 @@ bvar::Adder g_file_cache_event_driven_warm_up_requested_index_size( "file_cache_event_driven_warm_up_requested_index_size"); bvar::Adder g_file_cache_event_driven_warm_up_requested_index_num( "file_cache_event_driven_warm_up_requested_index_num"); +bvar::Adder g_file_cache_once_or_periodic_warm_up_submitted_tablet_num( + "file_cache_once_or_periodic_warm_up_submitted_tablet_num"); +bvar::Adder g_file_cache_once_or_periodic_warm_up_finished_tablet_num( + "file_cache_once_or_periodic_warm_up_finished_tablet_num"); bvar::Adder g_file_cache_once_or_periodic_warm_up_submitted_segment_size( "file_cache_once_or_periodic_warm_up_submitted_segment_size"); bvar::Adder g_file_cache_once_or_periodic_warm_up_submitted_segment_num( @@ -252,6 +256,7 @@ void CloudWarmUpManager::handle_jobs() { } } } + g_file_cache_once_or_periodic_warm_up_finished_tablet_num << 1; } timespec time; @@ -319,6 +324,7 @@ void CloudWarmUpManager::add_job(const std::vector& job_metas) { std::lock_guard lock(_mtx); std::for_each(job_metas.begin(), job_metas.end(), [this](const TJobMeta& meta) { _pending_job_metas.emplace_back(std::make_shared(meta)); + g_file_cache_once_or_periodic_warm_up_submitted_tablet_num << meta.tablet_ids.size(); }); } _cond.notify_all(); From ebfe6967a575968c9aa534a48ba95ba6b854e186 Mon Sep 17 00:00:00 2001 From: Kaijie Chen Date: Thu, 3 Jul 2025 21:01:54 +0800 Subject: [PATCH 2/3] [metrics](warmup) fix finished segment bvars --- be/src/cloud/cloud_warm_up_manager.cpp | 31 +++++++++++++++----------- be/src/cloud/cloud_warm_up_manager.h | 3 ++- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/be/src/cloud/cloud_warm_up_manager.cpp b/be/src/cloud/cloud_warm_up_manager.cpp index 80105f78126bda..0328e4320be45b 100644 --- a/be/src/cloud/cloud_warm_up_manager.cpp +++ b/be/src/cloud/cloud_warm_up_manager.cpp @@ -104,7 +104,8 @@ std::unordered_map snapshot_rs_metas(BaseTable void CloudWarmUpManager::submit_download_tasks(io::Path path, int64_t file_size, io::FileSystemSPtr file_system, int64_t expiration_time, - std::shared_ptr wait) { + std::shared_ptr wait, + bool is_index) { if (file_size < 0) { auto st = file_system->file_size(path, &file_size); if (!st.ok()) [[unlikely]] { @@ -113,6 +114,13 @@ void CloudWarmUpManager::submit_download_tasks(io::Path path, int64_t file_size, return; } } + if (is_index) { + g_file_cache_once_or_periodic_warm_up_submitted_index_num << 1; + g_file_cache_once_or_periodic_warm_up_submitted_index_size << file_size; + } else { + g_file_cache_once_or_periodic_warm_up_submitted_segment_num << 1; + g_file_cache_once_or_periodic_warm_up_submitted_segment_size << file_size; + } const int64_t chunk_size = 10 * 1024 * 1024; // 10MB int64_t offset = 0; @@ -134,9 +142,15 @@ void CloudWarmUpManager::submit_download_tasks(io::Path path, int64_t file_size, .is_dryrun = config::enable_reader_dryrun_when_download_file_cache, }, .download_done = - [wait](Status st) { + [=](Status st) { if (!st) { LOG_WARNING("Warm up error ").error(st); + } else if (is_index) { + g_file_cache_once_or_periodic_warm_up_finished_index_num << (offset == 0 ? 1 : 0); + g_file_cache_once_or_periodic_warm_up_finished_index_size << current_chunk_size; + } else { + g_file_cache_once_or_periodic_warm_up_finished_segment_num << (offset == 0 ? 1 : 0); + g_file_cache_once_or_periodic_warm_up_finished_segment_size << current_chunk_size; } wait->signal(); }, @@ -206,11 +220,6 @@ void CloudWarmUpManager::handle_jobs() { expiration_time = 0; } - g_file_cache_once_or_periodic_warm_up_submitted_segment_num << 1; - if (rs->segment_file_size(seg_id) > 0) { - g_file_cache_once_or_periodic_warm_up_submitted_segment_size - << rs->segment_file_size(seg_id); - } // 1st. download segment files submit_download_tasks( storage_resource.value()->remote_segment_path(*rs, seg_id), @@ -238,9 +247,7 @@ void CloudWarmUpManager::handle_jobs() { } } submit_download_tasks(idx_path, file_size, storage_resource.value()->fs, - expiration_time, wait); - g_file_cache_once_or_periodic_warm_up_submitted_index_num << 1; - g_file_cache_once_or_periodic_warm_up_submitted_index_size << file_size; + expiration_time, wait, true); } } else { if (schema_ptr->has_inverted_index()) { @@ -249,9 +256,7 @@ void CloudWarmUpManager::handle_jobs() { file_size = idx_file_info.has_index_size() ? idx_file_info.index_size() : -1; submit_download_tasks(idx_path, file_size, storage_resource.value()->fs, - expiration_time, wait); - g_file_cache_once_or_periodic_warm_up_submitted_index_num << 1; - g_file_cache_once_or_periodic_warm_up_submitted_index_size << file_size; + expiration_time, wait, true); } } } diff --git a/be/src/cloud/cloud_warm_up_manager.h b/be/src/cloud/cloud_warm_up_manager.h index 85a460fda1e4ad..40ebeab9f18857 100644 --- a/be/src/cloud/cloud_warm_up_manager.h +++ b/be/src/cloud/cloud_warm_up_manager.h @@ -83,7 +83,8 @@ class CloudWarmUpManager { void submit_download_tasks(io::Path path, int64_t file_size, io::FileSystemSPtr file_system, int64_t expiration_time, - std::shared_ptr wait); + std::shared_ptr wait, + bool is_index=false); std::mutex _mtx; std::condition_variable _cond; int64_t _cur_job_id {0}; From df29b4f424ed84bf44bb8445479d5321005eb47a Mon Sep 17 00:00:00 2001 From: Kaijie Chen Date: Tue, 8 Jul 2025 14:20:20 +0800 Subject: [PATCH 3/3] fix format --- be/src/cloud/cloud_warm_up_manager.cpp | 12 ++++++++---- be/src/cloud/cloud_warm_up_manager.h | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/be/src/cloud/cloud_warm_up_manager.cpp b/be/src/cloud/cloud_warm_up_manager.cpp index 0328e4320be45b..60f9beae547d7e 100644 --- a/be/src/cloud/cloud_warm_up_manager.cpp +++ b/be/src/cloud/cloud_warm_up_manager.cpp @@ -146,11 +146,15 @@ void CloudWarmUpManager::submit_download_tasks(io::Path path, int64_t file_size, if (!st) { LOG_WARNING("Warm up error ").error(st); } else if (is_index) { - g_file_cache_once_or_periodic_warm_up_finished_index_num << (offset == 0 ? 1 : 0); - g_file_cache_once_or_periodic_warm_up_finished_index_size << current_chunk_size; + g_file_cache_once_or_periodic_warm_up_finished_index_num + << (offset == 0 ? 1 : 0); + g_file_cache_once_or_periodic_warm_up_finished_index_size + << current_chunk_size; } else { - g_file_cache_once_or_periodic_warm_up_finished_segment_num << (offset == 0 ? 1 : 0); - g_file_cache_once_or_periodic_warm_up_finished_segment_size << current_chunk_size; + g_file_cache_once_or_periodic_warm_up_finished_segment_num + << (offset == 0 ? 1 : 0); + g_file_cache_once_or_periodic_warm_up_finished_segment_size + << current_chunk_size; } wait->signal(); }, diff --git a/be/src/cloud/cloud_warm_up_manager.h b/be/src/cloud/cloud_warm_up_manager.h index 40ebeab9f18857..13ba906a4e5844 100644 --- a/be/src/cloud/cloud_warm_up_manager.h +++ b/be/src/cloud/cloud_warm_up_manager.h @@ -84,7 +84,7 @@ class CloudWarmUpManager { void submit_download_tasks(io::Path path, int64_t file_size, io::FileSystemSPtr file_system, int64_t expiration_time, std::shared_ptr wait, - bool is_index=false); + bool is_index = false); std::mutex _mtx; std::condition_variable _cond; int64_t _cur_job_id {0};