[FEAT MERGE] remove retain_ctx use tx_data to hold mds op and optimise transfer move tx with check tx is needed
This commit is contained in:
51
mittest/env/ob_simple_server_helper.cpp
vendored
51
mittest/env/ob_simple_server_helper.cpp
vendored
@ -311,6 +311,57 @@ int SimpleServerHelper::freeze(uint64_t tenant_id, ObLSID ls_id, ObTabletID tabl
|
||||
return ret;
|
||||
}
|
||||
|
||||
int SimpleServerHelper::freeze_tx_data(uint64_t tenant_id, ObLSID ls_id)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
MTL_SWITCH(tenant_id) {
|
||||
ObLSHandle ls_handle;
|
||||
if (OB_FAIL(MTL(ObLSService*)->get_ls(ls_id, ls_handle, ObLSGetMod::STORAGE_MOD))) {
|
||||
} else {
|
||||
storage::checkpoint::ObCheckpointExecutor *checkpoint_executor = ls_handle.get_ls()->get_checkpoint_executor();
|
||||
ObTxDataMemtableMgr *tx_data_memtable_mgr
|
||||
= dynamic_cast<ObTxDataMemtableMgr *>(
|
||||
dynamic_cast<ObLSTxService *>(
|
||||
checkpoint_executor->handlers_[logservice::TRANS_SERVICE_LOG_BASE_TYPE])
|
||||
->common_checkpoints_[storage::checkpoint::ObCommonCheckpointType::TX_DATA_MEMTABLE_TYPE]);
|
||||
if (OB_ISNULL(tx_data_memtable_mgr)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("checkpoint obj is null", KR(ret));
|
||||
} else if (OB_FAIL(tx_data_memtable_mgr->flush(share::SCN::max_scn(),
|
||||
checkpoint::INVALID_TRACE_ID))) {
|
||||
} else {
|
||||
usleep(10 * 1000 * 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int SimpleServerHelper::freeze_tx_ctx(uint64_t tenant_id, ObLSID ls_id)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
MTL_SWITCH(tenant_id) {
|
||||
ObLSHandle ls_handle;
|
||||
if (OB_FAIL(MTL(ObLSService*)->get_ls(ls_id, ls_handle, ObLSGetMod::STORAGE_MOD))) {
|
||||
} else {
|
||||
storage::checkpoint::ObCheckpointExecutor *checkpoint_executor = ls_handle.get_ls()->get_checkpoint_executor();
|
||||
ObTxCtxMemtable *tx_ctx_memtable
|
||||
= dynamic_cast<ObTxCtxMemtable *>(
|
||||
dynamic_cast<ObLSTxService *>(
|
||||
checkpoint_executor->handlers_[logservice::TRANS_SERVICE_LOG_BASE_TYPE])
|
||||
->common_checkpoints_[storage::checkpoint::ObCommonCheckpointType::TX_CTX_MEMTABLE_TYPE]);
|
||||
if (OB_ISNULL(tx_ctx_memtable)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("checkpoint obj is null", KR(ret));
|
||||
} else if (OB_FAIL(tx_ctx_memtable->flush(share::SCN::max_scn(), 0))) {
|
||||
} else {
|
||||
usleep(10 * 1000 * 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int SimpleServerHelper::wait_flush_finish(uint64_t tenant_id, ObLSID ls_id, ObTabletID tablet_id)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
|
||||
Reference in New Issue
Block a user