From 3cf04d8c669eaffc85b86c3a20f752303a7f059f Mon Sep 17 00:00:00 2001 From: obdev Date: Wed, 7 Feb 2024 07:49:35 +0000 Subject: [PATCH] fuse row flag --- src/share/cache/ob_kvcache_store.cpp | 6 ++++++ src/storage/compaction/ob_partition_merge_fuser.cpp | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/share/cache/ob_kvcache_store.cpp b/src/share/cache/ob_kvcache_store.cpp index 0a5d08af56..198202f1df 100644 --- a/src/share/cache/ob_kvcache_store.cpp +++ b/src/share/cache/ob_kvcache_store.cpp @@ -626,6 +626,12 @@ int ObKVCacheStore::try_flush_washable_mb( // sync wash if (OB_SUCC(ret) && size_washed < size_need_washed) { ret = OB_CACHE_FREE_BLOCK_NOT_ENOUGH; + INIT_SUCC(tmp_ret); + if (TC_REACH_TIME_INTERVAL(3 * 1000 * 1000/* 3s */)) { + if (OB_TMP_FAIL(print_tenant_memblock_info(head))) { + COMMON_LOG(WARN, "Fail to print tenant memblock info", K(tmp_ret)); + } + } COMMON_LOG(INFO, "can not find enough memory block to wash", K(ret), K(size_washed), K(size_need_washed)); } if (OB_FAIL(ret)) { diff --git a/src/storage/compaction/ob_partition_merge_fuser.cpp b/src/storage/compaction/ob_partition_merge_fuser.cpp index 90e8723f02..cbf2345bb5 100644 --- a/src/storage/compaction/ob_partition_merge_fuser.cpp +++ b/src/storage/compaction/ob_partition_merge_fuser.cpp @@ -121,7 +121,12 @@ int ObMergeFuser::fuse_row(MERGE_ITER_ARRAY ¯o_row_iters) STORAGE_LOG(WARN, "Invalid macro row iters to fuse row", K(ret), K(macro_row_iters)); } else if (OB_FAIL(preprocess_fuse_row(*macro_row_iters.at(0)->get_curr_row(), is_need_fuse))) { STORAGE_LOG(WARN, "failed to preprocess_fuse_row", K(ret)); - } else if (!is_need_fuse) { + } else if (!is_need_fuse && macro_row_iters.at(0)->get_curr_row()->row_flag_.is_delete()) { + result_row_.row_flag_.reset(); + result_row_.row_flag_ = macro_row_iters.at(0)->get_curr_row()->row_flag_; + for (int64_t i = 1; i < macro_row_iters_cnt; ++i) { + result_row_.row_flag_.fuse_flag(macro_row_iters.at(i)->get_curr_row()->row_flag_); + } } else { bool final_result = false; for (int64_t i = 0; OB_SUCC(ret) && !final_result && i < macro_row_iters_cnt; ++i) {