fuse row flag

This commit is contained in:
obdev
2024-02-07 07:49:35 +00:00
committed by ob-robot
parent 332318d38a
commit 3cf04d8c66
2 changed files with 12 additions and 1 deletions

View File

@ -626,6 +626,12 @@ int ObKVCacheStore::try_flush_washable_mb(
// sync wash // sync wash
if (OB_SUCC(ret) && size_washed < size_need_washed) { if (OB_SUCC(ret) && size_washed < size_need_washed) {
ret = OB_CACHE_FREE_BLOCK_NOT_ENOUGH; 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)); COMMON_LOG(INFO, "can not find enough memory block to wash", K(ret), K(size_washed), K(size_need_washed));
} }
if (OB_FAIL(ret)) { if (OB_FAIL(ret)) {

View File

@ -121,7 +121,12 @@ int ObMergeFuser::fuse_row(MERGE_ITER_ARRAY &macro_row_iters)
STORAGE_LOG(WARN, "Invalid macro row iters to fuse row", K(ret), K(macro_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))) { } 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)); 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 { } else {
bool final_result = false; bool final_result = false;
for (int64_t i = 0; OB_SUCC(ret) && !final_result && i < macro_row_iters_cnt; ++i) { for (int64_t i = 0; OB_SUCC(ret) && !final_result && i < macro_row_iters_cnt; ++i) {