提交 0e28542b 编写于 作者: O obdev 提交者: OB-robot

fix pull memtables after migration

上级 bc3effd2
......@@ -142,7 +142,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<ObIMemtable *>(memtable_handles.at(i).get_table()))) {
ret = OB_ERR_SYS;
......@@ -155,9 +155,8 @@ int ObPartitionMergePolicy::find_mini_merge_tables(
break;
} else if (memtable->get_end_log_ts() <= clog_checkpoint_ts) {
if (!tablet_id.is_special_merge_tablet() &&
static_cast<ObMemtable *>(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;
......@@ -196,7 +195,7 @@ int ObPartitionMergePolicy::find_mini_merge_tables(
if (result.handle_.empty()) {
ret = OB_NO_NEED_MERGE;
} else if (result.log_ts_range_.end_log_ts_ <= clog_checkpoint_ts) {
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 {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册