[CP] add consensus version for truncate
This commit is contained in:
@ -2124,9 +2124,16 @@ int ObTruncateTableExecutor::execute(ObExecContext &ctx, ObTruncateTableStmt &st
|
||||
// wait schema_version refreshed on this server
|
||||
while (OB_SUCC(ret) && ctx.get_timeout() > 0) {
|
||||
int64_t refreshed_schema_version = OB_INVALID_VERSION;
|
||||
int64_t consensus_schema_version = OB_INVALID_VERSION;
|
||||
if (OB_FAIL(GCTX.schema_service_->get_tenant_refreshed_schema_version(res.tenant_id_, refreshed_schema_version))) {
|
||||
LOG_WARN("get schema_version fail", KR(ret), K(res.tenant_id_));
|
||||
} else if (refreshed_schema_version >= res.task_id_) {
|
||||
LOG_WARN("get refreshed schema_version fail", KR(ret), K(res.tenant_id_));
|
||||
} else if (OB_FAIL(GCTX.schema_service_->get_tenant_broadcast_consensus_version(res.tenant_id_, consensus_schema_version))) {
|
||||
LOG_WARN("get consensus schema_version fail", KR(ret), K(res.tenant_id_));
|
||||
} else if (refreshed_schema_version >= res.task_id_
|
||||
&& consensus_schema_version >= res.task_id_) {
|
||||
break;
|
||||
} else if (refreshed_schema_version >= res.task_id_
|
||||
&& ObTimeUtility::current_time() - step_time >= 10 * 1000 * 1000) { //10s
|
||||
break;
|
||||
} else {
|
||||
ob_usleep(10 * 1000);
|
||||
@ -2134,7 +2141,7 @@ int ObTruncateTableExecutor::execute(ObExecContext &ctx, ObTruncateTableStmt &st
|
||||
}
|
||||
}
|
||||
int64_t end_time = ObTimeUtility::current_time();
|
||||
LOG_INFO("truncate_table_v2", K(ret), "cost", end_time-start_time,
|
||||
LOG_INFO("truncate_table_v2", KR(ret), "cost", end_time-start_time,
|
||||
"trans_cost", step_time - start_time,
|
||||
"wait_refresh", end_time - step_time,
|
||||
"table_name", truncate_table_arg.table_name_,
|
||||
|
||||
Reference in New Issue
Block a user