diff --git a/src/sql/engine/px/ob_px_tenant_target_monitor.cpp b/src/sql/engine/px/ob_px_tenant_target_monitor.cpp index 0b0c0b7543..5f277a24e8 100644 --- a/src/sql/engine/px/ob_px_tenant_target_monitor.cpp +++ b/src/sql/engine/px/ob_px_tenant_target_monitor.cpp @@ -436,11 +436,13 @@ int ObPxTenantTargetMonitor::apply_target(hash::ObHashMap &work } if (OB_SUCC(ret)) { if (is_first_query || is_target_enough) { + int64_t total_admit_count = 0; for (hash::ObHashMap::iterator it = worker_map.begin(); OB_SUCC(ret) && it != worker_map.end(); it++) { it->second = std::min(it->second, target); ObAddr &server = it->first; int64_t acquired_cnt = it->second; + total_admit_count += acquired_cnt; auto apply_local_target = [=](hash::HashMapPair &entry) -> void { entry.second.update_local_used(acquired_cnt); if (is_leader()) { @@ -456,7 +458,7 @@ int ObPxTenantTargetMonitor::apply_target(hash::ObHashMap &work K(parallel_servers_target_)); } } - admit_count = std::min(req_cnt, target); + admit_count = total_admit_count; admit_version = version; parallel_session_count_++; } else {