fix adjust_global_merge_info when max_frozen_status.frozen_scn_ = 1

This commit is contained in:
obdev 2023-02-14 03:41:29 +00:00 committed by ob-robot
parent 1e90e30019
commit 8158904233
2 changed files with 7 additions and 6 deletions

View File

@ -314,7 +314,7 @@ int ObMajorMergeScheduler::do_one_round_major_merge(const int64_t expected_epoch
// no new zone to merge
LOG_INFO("no more zone need to merge", K_(tenant_id));
} else if (OB_FAIL(schedule_zones_to_merge(to_merge_zone, expected_epoch))) {
LOG_WARN("fail to get next merge zones", KR(ret), K(to_merge_zone), K(expected_epoch));
LOG_WARN("fail to schedule zones to merge", KR(ret), K(to_merge_zone), K(expected_epoch));
}
// Need to update_merge_status, even though to_merge_zone is empty.
// E.g., in the 1st loop, already schedule all zones to merge, but not finish major merge.

View File

@ -915,11 +915,12 @@ int ObZoneMergeManagerBase::adjust_global_merge_info()
} else {
// Adjust global_merge_info in memory with (max_frozen_status.frozen_scn_ - 1).
// So as to launch one major freeze with max_frozen_status.frozen_scn_.
inner_adjust_global_merge_info(SCN::minus(max_frozen_status.frozen_scn_, 1));
}
if (OB_SUCC(ret)) {
LOG_INFO("succ to adjust global merge info", K_(tenant_id), "max_frozen_scn",
max_frozen_status.frozen_scn_);
// Note: only launch major freezes with frozen_scn > 1
if (max_frozen_status.frozen_scn_ > SCN::base_scn()) {
inner_adjust_global_merge_info(SCN::minus(max_frozen_status.frozen_scn_, 1));
LOG_INFO("succ to adjust global merge info", K_(tenant_id), "max_frozen_scn",
max_frozen_status.frozen_scn_, K_(global_merge_info));
}
}
return ret;
}