From 2d3d8c37b73076bd1a824ab5db4c3a57cd36f36f Mon Sep 17 00:00:00 2001 From: obdev Date: Wed, 30 Nov 2022 07:37:55 +0000 Subject: [PATCH] [CP] fix pull memtables after migration --- src/storage/compaction/ob_partition_merge_policy.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/storage/compaction/ob_partition_merge_policy.cpp b/src/storage/compaction/ob_partition_merge_policy.cpp index a8f439e6e..8aac4a935 100644 --- a/src/storage/compaction/ob_partition_merge_policy.cpp +++ b/src/storage/compaction/ob_partition_merge_policy.cpp @@ -145,7 +145,7 @@ int ObPartitionMergePolicy::find_mini_merge_tables( // can only take out all frozen memtable ObIMemtable *memtable = nullptr; const ObTabletID &tablet_id = tablet.get_tablet_meta().tablet_id_; - bool contain_force_freeze_memtable = false; + bool need_update_snapshot_version = false; for (int64_t i = 0; OB_SUCC(ret) && i < memtable_handles.count(); ++i) { if (OB_ISNULL(memtable = static_cast(memtable_handles.at(i).get_table()))) { ret = OB_ERR_SYS; @@ -158,9 +158,8 @@ int ObPartitionMergePolicy::find_mini_merge_tables( break; } else if (memtable->get_end_scn() <= clog_checkpoint_scn) { if (!tablet_id.is_special_merge_tablet() && - static_cast(memtable)->get_is_force_freeze() && memtable->get_snapshot_version() > tablet.get_tablet_meta().snapshot_version_) { - contain_force_freeze_memtable = true; + need_update_snapshot_version = true; } else { LOG_DEBUG("memtable wait to release", K(param), KPC(memtable)); continue; @@ -199,7 +198,7 @@ int ObPartitionMergePolicy::find_mini_merge_tables( if (result.handle_.empty()) { ret = OB_NO_NEED_MERGE; } else if (result.scn_range_.end_scn_ <= clog_checkpoint_scn) { - if (contain_force_freeze_memtable) { + if (need_update_snapshot_version) { result.update_tablet_directly_ = true; LOG_INFO("meet empty force freeze memtable, could update tablet directly", K(ret), K(result)); } else { -- GitLab