prexecute only support local retry

This commit is contained in:
LiuYoung00
2022-11-03 00:08:30 +00:00
committed by wangzelin.wzl
parent c32d7e433b
commit f13c9e8a24
4 changed files with 7 additions and 5 deletions

View File

@ -68,7 +68,7 @@ int ObAsyncCmdDriver::response_result(ObMySQLResultSet &result)
LOG_WARN("close result set fail", K(close_ret));
}
if (!result.is_async_end_trans_submitted()) {
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret);
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret, is_prexecute_);
LOG_WARN("result set open failed, check if need retry",
K(ret), K(cli_ret), K(retry_ctrl_.need_retry()));
ret = cli_ret;

View File

@ -79,7 +79,7 @@ int ObAsyncPlanDriver::response_result(ObMySQLResultSet &result)
// 如果try_again为true,说明这条SQL需要重做。考虑到重做之前我们需要回滚整个事务,会调用EndTransCb
// 所以这里设置一个标记,告诉EndTransCb这种情况下不要给客户端回包。
int cli_ret = OB_SUCCESS;
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret);
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret, is_prexecute_);
if (retry_ctrl_.need_retry()) {
result.set_end_trans_async(false);
}

View File

@ -114,7 +114,7 @@ int ObSyncCmdDriver::response_result(ObMySQLResultSet &result)
}
// open失败,决定是否需要重试
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret);
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret, is_prexecute_);
LOG_WARN("result set open failed, check if need retry",
K(ret), K(cli_ret), K(retry_ctrl_.need_retry()));
ret = cli_ret;

View File

@ -72,7 +72,8 @@ int ObSyncPlanDriver::response_result(ObMySQLResultSet &result)
ctx_,
result,
ret,
cli_ret);
cli_ret,
is_prexecute_);
if (OB_TRANSACTION_SET_VIOLATION != ret && OB_REPLICA_NOT_READABLE != ret) {
if (OB_TRY_LOCK_ROW_CONFLICT == ret && retry_ctrl_.need_retry()) {
//锁冲突重试不打印日志,避免刷屏
@ -107,7 +108,8 @@ int ObSyncPlanDriver::response_result(ObMySQLResultSet &result)
ctx_,
result,
ret,
cli_ret);
cli_ret,
is_prexecute_);
LOG_WARN("result response failed, check if need retry",
K(ret), K(cli_ret), K(retry_ctrl_.need_retry()));
ret = cli_ret;