From 967868ffcbd8a4dee02b8a4fa46b4a15dbcea920 Mon Sep 17 00:00:00 2001 From: eldenmoon Date: Mon, 11 Nov 2024 14:13:54 +0800 Subject: [PATCH] [Optimize](Variant) move merge_rowsets_schema to sync_tablet_rowsets to make schema more accurate --- be/src/cloud/cloud_meta_mgr.cpp | 1 + be/src/cloud/cloud_tablet.cpp | 3 --- be/src/cloud/cloud_tablet.h | 6 +++--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/be/src/cloud/cloud_meta_mgr.cpp b/be/src/cloud/cloud_meta_mgr.cpp index ae98a7f605875e..dc1ac169200eec 100644 --- a/be/src/cloud/cloud_meta_mgr.cpp +++ b/be/src/cloud/cloud_meta_mgr.cpp @@ -555,6 +555,7 @@ Status CloudMetaMgr::sync_tablet_rowsets(CloudTablet* tablet, bool warmup_delta_ bool version_overlap = tablet->max_version_unlocked() >= rowsets.front()->start_version(); tablet->add_rowsets(std::move(rowsets), version_overlap, wlock, warmup_delta_data); + RETURN_IF_ERROR(tablet->merge_rowsets_schema()); } tablet->last_base_compaction_success_time_ms = stats.last_base_compaction_time_ms(); tablet->last_cumu_compaction_success_time_ms = stats.last_cumu_compaction_time_ms(); diff --git a/be/src/cloud/cloud_tablet.cpp b/be/src/cloud/cloud_tablet.cpp index 601e9486edf031..265fed77fc3255 100644 --- a/be/src/cloud/cloud_tablet.cpp +++ b/be/src/cloud/cloud_tablet.cpp @@ -164,9 +164,6 @@ Status CloudTablet::sync_rowsets(int64_t query_version, bool warmup_delta_data) clear_cache(); } - // Merge all rowset schemas within a CloudTablet - RETURN_IF_ERROR(merge_rowsets_schema()); - return st; } diff --git a/be/src/cloud/cloud_tablet.h b/be/src/cloud/cloud_tablet.h index 5f4785b62d2374..0fde2f5b1d93ff 100644 --- a/be/src/cloud/cloud_tablet.h +++ b/be/src/cloud/cloud_tablet.h @@ -191,6 +191,9 @@ class CloudTablet final : public BaseTablet { const auto& rowset_map() const { return _rs_version_map; } + // Merge all rowset schemas within a CloudTablet + Status merge_rowsets_schema(); + int64_t last_sync_time_s = 0; int64_t last_load_time_ms = 0; int64_t last_base_compaction_success_time_ms = 0; @@ -211,9 +214,6 @@ class CloudTablet final : public BaseTablet { Status sync_if_not_running(); - // Merge all rowset schemas within a CloudTablet - Status merge_rowsets_schema(); - CloudStorageEngine& _engine; // this mutex MUST ONLY be used when sync meta