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

mymeiyi 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 5af094f0b08 [fix](cloud) recycler 
decrement_delete_bitmap_packed_file_ref_counts method should read delete 
bitmaps as blobs (#66728)
5af094f0b08 is described below

commit 5af094f0b08a05f715f1391bb7286616a410a885
Author: meiyi <[email protected]>
AuthorDate: Tue Aug 18 16:49:30 2026 +0800

    [fix](cloud) recycler decrement_delete_bitmap_packed_file_ref_counts method 
should read delete bitmaps as blobs (#66728)
    
    v2 delete bitmaps are written with `blob_put`, which appends a suffix to 
every physical key.
    The recycler read the unsuffixed logical key with Transaction::get, treated 
existing delete bitmap metadata as missing, and skipped standalone-file 
deletion or packed-file reference-count updates.
---
 cloud/src/recycler/recycler.cpp | 6 +++---
 cloud/test/recycler_test.cpp    | 5 +----
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/cloud/src/recycler/recycler.cpp b/cloud/src/recycler/recycler.cpp
index 7c13d2d4bc2..3eef49b0c0e 100644
--- a/cloud/src/recycler/recycler.cpp
+++ b/cloud/src/recycler/recycler.cpp
@@ -3838,8 +3838,8 @@ int 
InstanceRecycler::decrement_delete_bitmap_packed_file_ref_counts(
         return -1;
     }
 
-    std::string dbm_val;
-    err = txn->get(dbm_key, &dbm_val);
+    ValueBuf dbm_val;
+    err = cloud::blob_get(txn.get(), dbm_key, &dbm_val);
     if (err == TxnErrorCode::TXN_KEY_NOT_FOUND) {
         // No delete bitmap for this rowset, nothing to do
         LOG_INFO("delete bitmap not found, skip packed file ref count 
decrement")
@@ -3858,7 +3858,7 @@ int 
InstanceRecycler::decrement_delete_bitmap_packed_file_ref_counts(
     }
 
     DeleteBitmapStoragePB storage;
-    if (!storage.ParseFromString(dbm_val)) {
+    if (!dbm_val.to_pb(&storage)) {
         LOG_WARNING("failed to parse delete bitmap storage")
                 .tag("instance_id", instance_id_)
                 .tag("tablet_id", tablet_id)
diff --git a/cloud/test/recycler_test.cpp b/cloud/test/recycler_test.cpp
index 8c635e8d6e9..de8c044b842 100644
--- a/cloud/test/recycler_test.cpp
+++ b/cloud/test/recycler_test.cpp
@@ -248,13 +248,10 @@ static int create_delete_bitmaps_v2(TxnKv* txn_kv, 
StorageVaultAccessor* accesso
         return -1;
     }
 
-    DeleteBitmapPB delete_bitmap;
     DeleteBitmapStoragePB delete_bitmap_storage;
     delete_bitmap_storage.set_store_in_fdb(false);
     auto key = versioned::meta_delete_bitmap_key({instance_id, tablet_id, 
rowset_id});
-    std::string val;
-    delete_bitmap_storage.SerializeToString(&val);
-    txn->put(key, val);
+    cloud::blob_put(txn.get(), key, delete_bitmap_storage, 0);
     if (txn->commit() != TxnErrorCode::TXN_OK) {
         return -1;
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to