Fix master transfer relative optimization

This commit is contained in:
godyangfight
2024-09-19 07:50:23 +00:00
committed by ob-robot
parent 10c7778a97
commit b5bf5ed1b9
2 changed files with 13 additions and 3 deletions

View File

@ -713,6 +713,14 @@ int ObTabletBackfillTXTask::get_backfill_tx_memtables_(
ret = OB_EAGAIN;
LOG_WARN("memtable start log ts is bigger than log sync scn but not empty, need retry", K(ret), KPC(memtable), KPC_(backfill_tx_ctx));
}
} else if (table->get_end_scn() > backfill_tx_ctx_->backfill_scn_) {
if (tablet_info_.is_committed_) {
ret = OB_ERR_UNEXPECTED;
LOG_ERROR("memtable end log ts is bigger than log sync", K(ret), KPC(memtable), KPC_(backfill_tx_ctx));
} else {
ret = OB_EAGAIN;
LOG_WARN("memtable end log ts is bigger than log sync scn, need retry", K(ret), KPC(memtable), KPC_(backfill_tx_ctx));
}
} else {
memtable_end_scn = memtable->get_end_scn();
}

View File

@ -687,6 +687,7 @@ int ObTransferBackfillTXDagNet::start_running_for_backfill_()
int tmp_ret = OB_SUCCESS;
ObStartTransferBackfillTXDag *backfill_tx_dag = nullptr;
share::ObTenantDagScheduler *scheduler = nullptr;
const bool emergency = true;
if (IS_NOT_INIT) {
ret = OB_NOT_INIT;
@ -702,7 +703,7 @@ int ObTransferBackfillTXDagNet::start_running_for_backfill_()
LOG_WARN("failed to add transfer backfill tx dag into dag net", K(ret));
} else if (OB_FAIL(backfill_tx_dag->create_first_task())) {
LOG_WARN("failed to create transfer backfill tx first task", K(ret));
} else if (OB_FAIL(scheduler->add_dag(backfill_tx_dag))) {
} else if (OB_FAIL(scheduler->add_dag(backfill_tx_dag, emergency))) {
LOG_WARN("failed to add backfill dag", K(ret), K(*backfill_tx_dag));
if (OB_SIZE_OVERFLOW != ret && OB_EAGAIN != ret) {
LOG_WARN("Fail to add task", K(ret));
@ -1061,6 +1062,7 @@ int ObStartTransferBackfillTXTask::generate_transfer_backfill_tx_dags_()
ObBackfillTXCtx *backfill_tx_ctx = nullptr;
storage::ObTabletBackfillInfo tablet_info;
ObStartTransferBackfillTXDag *backfill_tx_dag = nullptr;
const bool emergency = true;
if (IS_NOT_INIT) {
ret = OB_NOT_INIT;
@ -1107,7 +1109,7 @@ int ObStartTransferBackfillTXTask::generate_transfer_backfill_tx_dags_()
LOG_WARN("failed to add child dag", K(ret), K(*ctx_));
} else if (OB_FAIL(finish_backfill_tx_dag->create_first_task())) {
LOG_WARN("failed to create first task", K(ret));
} else if (OB_FAIL(scheduler->add_dag(tablet_backfill_tx_dag))) {
} else if (OB_FAIL(scheduler->add_dag(tablet_backfill_tx_dag, emergency))) {
LOG_WARN("failed to add tablet backfill tx dag", K(ret), K(*tablet_backfill_tx_dag));
if (OB_SIZE_OVERFLOW != ret && OB_EAGAIN != ret) {
LOG_WARN("Fail to add task", K(ret));
@ -1117,7 +1119,7 @@ int ObStartTransferBackfillTXTask::generate_transfer_backfill_tx_dags_()
}
if (OB_FAIL(ret)) {
} else if (OB_FAIL(scheduler->add_dag(finish_backfill_tx_dag))) {
} else if (OB_FAIL(scheduler->add_dag(finish_backfill_tx_dag, emergency))) {
LOG_WARN("failed to add finish backfill tx dag", K(ret), K(*finish_backfill_tx_dag));
if (OB_SIZE_OVERFLOW != ret && OB_EAGAIN != ret) {
LOG_WARN("Fail to add task", K(ret));