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

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


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new daf4f0a7bf5 [fix](cloud-mow) Add enable config for procesing old 
version delete bitmap when doing cu compaction (#43615)
daf4f0a7bf5 is described below

commit daf4f0a7bf51cd010b3c91067eeddb9b3753f5ee
Author: huanghaibin <huanghai...@selectdb.com>
AuthorDate: Tue Nov 12 21:52:18 2024 +0800

    [fix](cloud-mow) Add enable config for procesing old version delete bitmap 
when doing cu compaction (#43615)
    
    pr https://github.com/apache/doris/pull/40204 support deleting old
    version delete bitmap when doing cu compaction, it a new function and
    better to add a config to enable it or not.
    pick pr:https://github.com/apache/doris/pull/42471
---
 be/src/cloud/cloud_cumulative_compaction.cpp | 3 ++-
 be/src/cloud/cloud_delete_bitmap_action.cpp  | 2 ++
 be/src/cloud/cloud_meta_mgr.cpp              | 2 +-
 be/src/common/config.cpp                     | 2 ++
 be/src/common/config.h                       | 2 ++
 be/src/olap/rowset/beta_rowset_writer.cpp    | 3 +--
 be/src/olap/tablet_meta.cpp                  | 3 +++
 7 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/be/src/cloud/cloud_cumulative_compaction.cpp 
b/be/src/cloud/cloud_cumulative_compaction.cpp
index 4eb8aba2068..92e0f44dc5b 100644
--- a/be/src/cloud/cloud_cumulative_compaction.cpp
+++ b/be/src/cloud/cloud_cumulative_compaction.cpp
@@ -360,7 +360,8 @@ Status CloudCumulativeCompaction::modify_rowsets() {
                                                     stats.num_rows(), 
stats.data_size());
         }
     }
-    if (_tablet->keys_type() == KeysType::UNIQUE_KEYS &&
+    if (config::enable_delete_bitmap_merge_on_compaction &&
+        _tablet->keys_type() == KeysType::UNIQUE_KEYS &&
         _tablet->enable_unique_key_merge_on_write() && _input_rowsets.size() 
!= 1) {
         RETURN_IF_ERROR(process_old_version_delete_bitmap());
     }
diff --git a/be/src/cloud/cloud_delete_bitmap_action.cpp 
b/be/src/cloud/cloud_delete_bitmap_action.cpp
index 60db5896dfa..672574a5aa8 100644
--- a/be/src/cloud/cloud_delete_bitmap_action.cpp
+++ b/be/src/cloud/cloud_delete_bitmap_action.cpp
@@ -95,6 +95,8 @@ Status 
CloudDeleteBitmapAction::_handle_show_delete_bitmap_count(HttpRequest* re
     auto count = 
tablet->tablet_meta()->delete_bitmap().get_delete_bitmap_count();
     auto cardinality = tablet->tablet_meta()->delete_bitmap().cardinality();
     auto size = tablet->tablet_meta()->delete_bitmap().get_size();
+    LOG(INFO) << "show_delete_bitmap_count,tablet_id=" << tablet_id << 
",count=" << count
+              << ",cardinality=" << cardinality << ",size=" << size;
 
     rapidjson::Document root;
     root.SetObject();
diff --git a/be/src/cloud/cloud_meta_mgr.cpp b/be/src/cloud/cloud_meta_mgr.cpp
index 0beeea42bd6..1ce2326c21f 100644
--- a/be/src/cloud/cloud_meta_mgr.cpp
+++ b/be/src/cloud/cloud_meta_mgr.cpp
@@ -1074,7 +1074,7 @@ Status CloudMetaMgr::update_delete_bitmap(const 
CloudTablet& tablet, int64_t loc
 Status CloudMetaMgr::cloud_update_delete_bitmap_without_lock(const 
CloudTablet& tablet,
                                                              DeleteBitmap* 
delete_bitmap) {
     LOG(INFO) << "cloud_update_delete_bitmap_without_lock , tablet_id: " << 
tablet.tablet_id()
-              << ",delete_bitmap size:" << delete_bitmap->delete_bitmap.size();
+              << ",delete_bitmap size:" << 
delete_bitmap->get_delete_bitmap_count();
     UpdateDeleteBitmapRequest req;
     UpdateDeleteBitmapResponse res;
     req.set_cloud_unique_id(config::cloud_unique_id);
diff --git a/be/src/common/config.cpp b/be/src/common/config.cpp
index 6c468e5abde..ef70fd9b88c 100644
--- a/be/src/common/config.cpp
+++ b/be/src/common/config.cpp
@@ -1379,6 +1379,8 @@ DEFINE_mBool(enable_pipeline_task_leakage_detect, 
"false");
 
 DEFINE_Int32(query_cache_size, "512");
 
+DEFINE_mBool(enable_delete_bitmap_merge_on_compaction, "false");
+
 // Enable validation to check the correctness of table size.
 DEFINE_Bool(enable_table_size_correctness_check, "false");
 
diff --git a/be/src/common/config.h b/be/src/common/config.h
index c763d1f8a06..726835ef85f 100644
--- a/be/src/common/config.h
+++ b/be/src/common/config.h
@@ -1459,6 +1459,8 @@ DECLARE_mBool(enable_pipeline_task_leakage_detect);
 // MB
 DECLARE_Int32(query_cache_size);
 
+DECLARE_mBool(enable_delete_bitmap_merge_on_compaction);
+
 // Enable validation to check the correctness of table size.
 DECLARE_Bool(enable_table_size_correctness_check);
 
diff --git a/be/src/olap/rowset/beta_rowset_writer.cpp 
b/be/src/olap/rowset/beta_rowset_writer.cpp
index 97e3bcb1deb..435c080c6f0 100644
--- a/be/src/olap/rowset/beta_rowset_writer.cpp
+++ b/be/src/olap/rowset/beta_rowset_writer.cpp
@@ -336,8 +336,7 @@ Status 
BaseBetaRowsetWriter::_generate_delete_bitmap(int32_t segment_id) {
     LOG(INFO) << "[Memtable Flush] construct delete bitmap tablet: " << 
_context.tablet->tablet_id()
               << ", rowset_ids: " << _context.mow_context->rowset_ids.size()
               << ", cur max_version: " << _context.mow_context->max_version
-              << ", transaction_id: " << _context.mow_context->txn_id << ", 
delete_bitmap_count: "
-              << 
_context.tablet->tablet_meta()->delete_bitmap().get_delete_bitmap_count()
+              << ", transaction_id: " << _context.mow_context->txn_id
               << ", cost: " << watch.get_elapse_time_us() << "(us), total 
rows: " << total_rows;
     return Status::OK();
 }
diff --git a/be/src/olap/tablet_meta.cpp b/be/src/olap/tablet_meta.cpp
index b5e3accab86..9c60eeb3c65 100644
--- a/be/src/olap/tablet_meta.cpp
+++ b/be/src/olap/tablet_meta.cpp
@@ -1188,6 +1188,9 @@ void DeleteBitmap::add_to_remove_queue(
 }
 
 void DeleteBitmap::remove_stale_delete_bitmap_from_queue(const 
std::vector<std::string>& vector) {
+    if (!config::enable_delete_bitmap_merge_on_compaction) {
+        return;
+    }
     std::shared_lock l(stale_delete_bitmap_lock);
     //<rowset_id, start_version, end_version>
     std::vector<std::tuple<std::string, uint64_t, uint64_t>> to_delete;


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

Reply via email to