From fe7ee1531c99e43b8c7463c3c2e70d230daeef8c Mon Sep 17 00:00:00 2001 From: obdev Date: Wed, 7 Feb 2024 05:47:25 +0000 Subject: [PATCH] do not calc_tablet_attr when the addrs of tablets persistence-equivalent --- src/storage/ls/ob_ls_tablet_service.cpp | 2 -- src/storage/meta_mem/ob_tablet_pointer_map.cpp | 12 +++++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/storage/ls/ob_ls_tablet_service.cpp b/src/storage/ls/ob_ls_tablet_service.cpp index 9fb3aadece..2080df0363 100644 --- a/src/storage/ls/ob_ls_tablet_service.cpp +++ b/src/storage/ls/ob_ls_tablet_service.cpp @@ -2242,8 +2242,6 @@ int ObLSTabletService::create_memtable( ObTabletHandle old_tablet_handle; const ObTabletMapKey key(ls_->get_ls_id(), tablet_id); ObTabletHandle new_tablet_handle; - ObTabletMemberWrapper table_store; - ObTabletMemberWrapper autoinc_seq; ObTimeGuard time_guard("ObLSTabletService::create_memtable", 10_ms); if (OB_UNLIKELY(!is_inited_)) { diff --git a/src/storage/meta_mem/ob_tablet_pointer_map.cpp b/src/storage/meta_mem/ob_tablet_pointer_map.cpp index aaab4276a2..9763321b58 100644 --- a/src/storage/meta_mem/ob_tablet_pointer_map.cpp +++ b/src/storage/meta_mem/ob_tablet_pointer_map.cpp @@ -693,11 +693,17 @@ int ObTabletPointerMap::compare_and_swap_addr_and_object( } if (OB_SUCC(ret)) { - t_ptr->set_addr_with_reset_obj(new_addr); - t_ptr->set_obj(new_guard); - if (OB_FAIL(t_ptr->set_tablet_attr(*new_guard.get_obj()))) { + if (t_ptr->get_addr().is_equal_for_persistence(new_addr)) { + // no need to update tablet attr, including creating memtables or updating the same tablets + STORAGE_LOG(DEBUG, "no need to update tablet attr", K(ret), K(new_addr), K(t_ptr->get_addr()), K(new_guard), K(old_guard)); + } else if (OB_FAIL(t_ptr->set_tablet_attr(*new_guard.get_obj()))) { STORAGE_LOG(WARN, "failed to update tablet attr", K(ret), K(key), K(new_addr), K(new_guard)); } + + if (OB_SUCC(ret)) { + t_ptr->set_addr_with_reset_obj(new_addr); + t_ptr->set_obj(new_guard); + } } }