[FIX] skip recycle tx data when ls is restoring
This commit is contained in:
@ -682,6 +682,7 @@ int ObTxDataTable::get_recycle_scn(SCN &recycle_scn)
|
|||||||
ObTabletHandle tablet_handle;
|
ObTabletHandle tablet_handle;
|
||||||
ObLSTabletIterator iterator;
|
ObLSTabletIterator iterator;
|
||||||
ObMigrationStatus migration_status;
|
ObMigrationStatus migration_status;
|
||||||
|
share::ObLSRestoreStatus restore_status;
|
||||||
SCN min_end_scn = SCN::max_scn();
|
SCN min_end_scn = SCN::max_scn();
|
||||||
SCN min_end_scn_from_old_tablets = SCN::max_scn();
|
SCN min_end_scn_from_old_tablets = SCN::max_scn();
|
||||||
SCN min_end_scn_from_latest_tablets = SCN::max_scn();
|
SCN min_end_scn_from_latest_tablets = SCN::max_scn();
|
||||||
@ -696,7 +697,12 @@ int ObTxDataTable::get_recycle_scn(SCN &recycle_scn)
|
|||||||
STORAGE_LOG(WARN, "get migration status failed", KR(ret), "ls_id", ls_->get_ls_id());
|
STORAGE_LOG(WARN, "get migration status failed", KR(ret), "ls_id", ls_->get_ls_id());
|
||||||
} else if (ObMigrationStatus::OB_MIGRATION_STATUS_NONE != migration_status) {
|
} else if (ObMigrationStatus::OB_MIGRATION_STATUS_NONE != migration_status) {
|
||||||
recycle_scn.set_min();
|
recycle_scn.set_min();
|
||||||
STORAGE_LOG(INFO, "logstream is not in a normal state. skip recycle tx data", "ls_id", ls_->get_ls_id());
|
STORAGE_LOG(INFO, "logstream is in migration state. skip recycle tx data", "ls_id", ls_->get_ls_id());
|
||||||
|
} else if (OB_FAIL(ls_->get_restore_status(restore_status))) {
|
||||||
|
STORAGE_LOG(WARN, "get restore status failed", KR(ret), "ls_id", ls_->get_ls_id());
|
||||||
|
} else if (ObLSRestoreStatus::RESTORE_NONE != restore_status) {
|
||||||
|
recycle_scn.set_min();
|
||||||
|
STORAGE_LOG(INFO, "logstream is in restore state. skip recycle tx data", "ls_id", ls_->get_ls_id());
|
||||||
} else if (OB_FAIL(get_ls_min_end_scn_in_latest_tablets_(min_end_scn_from_latest_tablets))) {
|
} else if (OB_FAIL(get_ls_min_end_scn_in_latest_tablets_(min_end_scn_from_latest_tablets))) {
|
||||||
// get_ls_min_end_scn_in_latest_tablets must before get_ls_min_end_scn_in_old_tablets
|
// get_ls_min_end_scn_in_latest_tablets must before get_ls_min_end_scn_in_old_tablets
|
||||||
STORAGE_LOG(WARN, "fail to get ls min end log ts in all of latest tablets", KR(ret));
|
STORAGE_LOG(WARN, "fail to get ls min end log ts in all of latest tablets", KR(ret));
|
||||||
@ -709,7 +715,7 @@ int ObTxDataTable::get_recycle_scn(SCN &recycle_scn)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FLOG_INFO("get tx data recycle ts finish.",
|
FLOG_INFO("get tx data recycle scn finish.",
|
||||||
KR(ret),
|
KR(ret),
|
||||||
"ls_id", ls_->get_ls_id(),
|
"ls_id", ls_->get_ls_id(),
|
||||||
K(recycle_scn),
|
K(recycle_scn),
|
||||||
|
|||||||
Reference in New Issue
Block a user