diff --git a/be/src/http/action/delete_bitmap_action.cpp b/be/src/http/action/delete_bitmap_action.cpp index 581da9204ac32f..d4bdb5252ceb11 100644 --- a/be/src/http/action/delete_bitmap_action.cpp +++ b/be/src/http/action/delete_bitmap_action.cpp @@ -242,6 +242,14 @@ void DeleteBitmapAction::handle(HttpRequest* req) { } else { HttpChannel::send_reply(req, HttpStatus::OK, json_result); } + } else if (_delete_bitmap_action_type == DeleteBitmapActionType::COUNT_AGG_CACHE) { + std::string json_result; + Status st = _handle_show_agg_cache_delete_bitmap_count(req, &json_result); + if (!st.ok()) { + HttpChannel::send_reply(req, HttpStatus::OK, st.to_json()); + } else { + HttpChannel::send_reply(req, HttpStatus::OK, json_result); + } } } diff --git a/be/src/olap/tablet_meta.cpp b/be/src/olap/tablet_meta.cpp index 2e23df028ff9e5..d150351cd928c8 100644 --- a/be/src/olap/tablet_meta.cpp +++ b/be/src/olap/tablet_meta.cpp @@ -744,6 +744,7 @@ void TabletMeta::init_from_pb(const TabletMetaPB& tablet_meta_pb) { if (tablet_meta_pb.has_enable_unique_key_merge_on_write()) { _enable_unique_key_merge_on_write = tablet_meta_pb.enable_unique_key_merge_on_write(); + _delete_bitmap->set_tablet_id(_tablet_id); } // init _rs_metas @@ -1618,6 +1619,10 @@ DeleteBitmap DeleteBitmap::agg_cache_snapshot() { return DeleteBitmapAggCache::instance()->snapshot(_tablet_id); } +void DeleteBitmap::set_tablet_id(int64_t tablet_id) { + _tablet_id = tablet_id; +} + std::shared_ptr DeleteBitmap::get_agg(const BitmapKey& bmk) const { std::string key_str = agg_cache_key(_tablet_id, bmk); // Cache key container CacheKey key(key_str); diff --git a/be/src/olap/tablet_meta.h b/be/src/olap/tablet_meta.h index 5d7690c3973c95..6101a96f5cf379 100644 --- a/be/src/olap/tablet_meta.h +++ b/be/src/olap/tablet_meta.h @@ -602,6 +602,8 @@ class DeleteBitmap { DeleteBitmap agg_cache_snapshot(); + void set_tablet_id(int64_t tablet_id); + private: DeleteBitmap::Version _get_rowset_cache_version(const BitmapKey& bmk) const; diff --git a/regression-test/suites/metrics_p0/test_delete_bitmap_metrics.groovy b/regression-test/suites/metrics_p0/test_delete_bitmap_metrics.groovy index a158e94c71ab5c..a74d5ffb6e4515 100644 --- a/regression-test/suites/metrics_p0/test_delete_bitmap_metrics.groovy +++ b/regression-test/suites/metrics_p0/test_delete_bitmap_metrics.groovy @@ -207,16 +207,16 @@ suite("test_delete_bitmap_metrics", "p0") { logger.info("ms_delete_bitmap_cardinality:" + ms_delete_bitmap_cardinality) assertTrue(ms_delete_bitmap_count == 7) assertTrue(ms_delete_bitmap_cardinality == 7) + } - // def status = getAggCacheDeleteBitmapStatus(backendId_to_backendIP[trigger_backend_id], backendId_to_backendHttpPort[trigger_backend_id], tablet_id) - // logger.info("agg cache status: ${status}") - // assert status.delete_bitmap_count == 8 - // assert status.cardinality == 7 - // assert status.size > 0 + def status = getAggCacheDeleteBitmapStatus(backendId_to_backendIP[trigger_backend_id], backendId_to_backendHttpPort[trigger_backend_id], tablet_id) + logger.info("agg cache status: ${status}") + assert status.delete_bitmap_count == 8 + assert status.cardinality == 7 + assert status.size > 0 - // status = getAggCacheDeleteBitmapStatus(backendId_to_backendIP[trigger_backend_id], backendId_to_backendHttpPort[trigger_backend_id], tablet_id, true) - // logger.info("agg cache verbose status: ${status}") - } + status = getAggCacheDeleteBitmapStatus(backendId_to_backendIP[trigger_backend_id], backendId_to_backendHttpPort[trigger_backend_id], tablet_id, true) + logger.info("agg cache verbose status: ${status}") def tablet_delete_bitmap_count = 0; def base_rowset_delete_bitmap_count = 0;