Fix autoinc get_tablet timeout

This commit is contained in:
Hongqin-Li
2024-02-08 01:38:40 +00:00
committed by ob-robot
parent d1088fcd22
commit 4df109d1e1
2 changed files with 7 additions and 5 deletions

View File

@ -142,7 +142,7 @@ int ObTabletAutoincSeqRpcHandler::fetch_tablet_autoinc_seq_cache(
LOG_WARN("follower received FetchTabletsSeq rpc", K(ret), K(ls_id)); LOG_WARN("follower received FetchTabletsSeq rpc", K(ret), K(ls_id));
} else if (OB_FAIL(MTL(ObLSService*)->get_ls(ls_id, ls_handle, ObLSGetMod::OBSERVER_MOD))) { } else if (OB_FAIL(MTL(ObLSService*)->get_ls(ls_id, ls_handle, ObLSGetMod::OBSERVER_MOD))) {
LOG_WARN("get ls failed", K(ret), K(ls_id)); LOG_WARN("get ls failed", K(ret), K(ls_id));
} else if (OB_FAIL(ls_handle.get_ls()->get_tablet(tablet_id, tablet_handle))) { } else if (OB_FAIL(ls_handle.get_ls()->get_tablet(tablet_id, tablet_handle, THIS_WORKER.is_timeout_ts_valid() ? THIS_WORKER.get_timeout_remain() : obrpc::ObRpcProxy::MAX_RPC_TIMEOUT))) {
LOG_WARN("failed to get tablet", KR(ret), K(arg)); LOG_WARN("failed to get tablet", KR(ret), K(arg));
} else if (OB_FAIL(tablet_handle.get_obj()->fetch_tablet_autoinc_seq_cache( } else if (OB_FAIL(tablet_handle.get_obj()->fetch_tablet_autoinc_seq_cache(
arg.cache_size_, autoinc_interval))) { arg.cache_size_, autoinc_interval))) {
@ -196,7 +196,7 @@ int ObTabletAutoincSeqRpcHandler::batch_get_tablet_autoinc_seq(
LOG_WARN("failed to get tablet", K(tmp_ret), K(src_tablet_id)); LOG_WARN("failed to get tablet", K(tmp_ret), K(src_tablet_id));
} else { } else {
ObTabletAutoincSeq autoinc_seq; ObTabletAutoincSeq autoinc_seq;
if (OB_TMP_FAIL(tablet_handle.get_obj()->get_autoinc_seq(allocator, share::SCN::max_scn(), autoinc_seq))) { if (OB_TMP_FAIL(tablet_handle.get_obj()->get_autoinc_seq(allocator, share::SCN::max_scn(), autoinc_seq, THIS_WORKER.is_timeout_ts_valid() ? THIS_WORKER.get_timeout_remain() : obrpc::ObRpcProxy::MAX_RPC_TIMEOUT))) {
LOG_WARN("fail to get latest autoinc seq", K(ret)); LOG_WARN("fail to get latest autoinc seq", K(ret));
} else if (OB_TMP_FAIL(autoinc_seq.get_autoinc_seq_value(autoinc_param.autoinc_seq_))) { } else if (OB_TMP_FAIL(autoinc_seq.get_autoinc_seq_value(autoinc_param.autoinc_seq_))) {
LOG_WARN("failed to get autoinc seq value", K(tmp_ret)); LOG_WARN("failed to get autoinc seq value", K(tmp_ret));

View File

@ -4841,10 +4841,11 @@ int ObTablet::fetch_tablet_autoinc_seq_cache(
ObArenaAllocator allocator(common::ObMemAttr(MTL_ID(), "FetchAutoSeq")); ObArenaAllocator allocator(common::ObMemAttr(MTL_ID(), "FetchAutoSeq"));
ObTabletAutoincSeq autoinc_seq; ObTabletAutoincSeq autoinc_seq;
uint64_t auto_inc_seqvalue = 0; uint64_t auto_inc_seqvalue = 0;
const int64_t rpc_timeout = THIS_WORKER.is_timeout_ts_valid() ? THIS_WORKER.get_timeout_remain() : obrpc::ObRpcProxy::MAX_RPC_TIMEOUT;
if (OB_UNLIKELY(!is_inited_)) { if (OB_UNLIKELY(!is_inited_)) {
ret = OB_NOT_INIT; ret = OB_NOT_INIT;
LOG_WARN("not inited", K(ret), K_(is_inited)); LOG_WARN("not inited", K(ret), K_(is_inited));
} else if (OB_FAIL(get_autoinc_seq(allocator, share::SCN::max_scn(), autoinc_seq))) { } else if (OB_FAIL(get_autoinc_seq(allocator, share::SCN::max_scn(), autoinc_seq, rpc_timeout))) {
LOG_WARN("fail to get latest autoinc seq", K(ret)); LOG_WARN("fail to get latest autoinc seq", K(ret));
} else if (OB_FAIL(autoinc_seq.get_autoinc_seq_value(auto_inc_seqvalue))) { } else if (OB_FAIL(autoinc_seq.get_autoinc_seq_value(auto_inc_seqvalue))) {
LOG_WARN("failed to get autoinc seq value", K(ret), K(autoinc_seq)); LOG_WARN("failed to get autoinc seq value", K(ret), K(autoinc_seq));
@ -4973,7 +4974,7 @@ int ObTablet::write_sync_tablet_seq_log(ObTabletAutoincSeq &autoinc_seq,
LOG_WARN("fail to serialize sync tablet seq log", K(ret)); LOG_WARN("fail to serialize sync tablet seq log", K(ret));
} else if (OB_FAIL(cb->init(tablet_meta_.ls_id_, tablet_id, static_cast<int64_t>(new_autoinc_seq)))) { } else if (OB_FAIL(cb->init(tablet_meta_.ls_id_, tablet_id, static_cast<int64_t>(new_autoinc_seq)))) {
LOG_WARN("failed to init cb", K(ret), K(tablet_meta_)); LOG_WARN("failed to init cb", K(ret), K(tablet_meta_));
} else if (OB_FAIL(set<ObTabletAutoincSeq>(std::move(autoinc_seq), cb->get_mds_ctx()))) { } else if (OB_FAIL(set<ObTabletAutoincSeq>(std::move(autoinc_seq), cb->get_mds_ctx(), THIS_WORKER.is_timeout_ts_valid() ? THIS_WORKER.get_timeout_remain() : obrpc::ObRpcProxy::MAX_RPC_TIMEOUT))) {
LOG_WARN("failed to set mds", K(ret)); LOG_WARN("failed to set mds", K(ret));
} else if (OB_FAIL(log_handler->append(buffer, } else if (OB_FAIL(log_handler->append(buffer,
buffer_size, buffer_size,
@ -5028,10 +5029,11 @@ int ObTablet::update_tablet_autoinc_seq(const uint64_t autoinc_seq)
ObTabletAutoincSeq curr_autoinc_seq; ObTabletAutoincSeq curr_autoinc_seq;
uint64_t curr_auto_inc_seqvalue; uint64_t curr_auto_inc_seqvalue;
SCN scn; SCN scn;
const int64_t rpc_timeout = THIS_WORKER.is_timeout_ts_valid() ? THIS_WORKER.get_timeout_remain() : obrpc::ObRpcProxy::MAX_RPC_TIMEOUT;
if (OB_UNLIKELY(!is_inited_)) { if (OB_UNLIKELY(!is_inited_)) {
ret = OB_NOT_INIT; ret = OB_NOT_INIT;
LOG_WARN("not inited", K(ret), K_(is_inited)); LOG_WARN("not inited", K(ret), K_(is_inited));
} else if (OB_FAIL(get_autoinc_seq(allocator, share::SCN::max_scn(), curr_autoinc_seq))) { } else if (OB_FAIL(get_autoinc_seq(allocator, share::SCN::max_scn(), curr_autoinc_seq, rpc_timeout))) {
LOG_WARN("fail to get latest autoinc seq", K(ret)); LOG_WARN("fail to get latest autoinc seq", K(ret));
} else if (OB_FAIL(curr_autoinc_seq.get_autoinc_seq_value(curr_auto_inc_seqvalue))) { } else if (OB_FAIL(curr_autoinc_seq.get_autoinc_seq_value(curr_auto_inc_seqvalue))) {
LOG_WARN("failed to get autoinc seq value", K(ret)); LOG_WARN("failed to get autoinc seq value", K(ret));