J-HowHuang opened a new issue, #16327:
URL: https://github.com/apache/pinot/issues/16327

   Currently the remaining time for broker reduce phase is calculated as: the 
total query timeout, by table config or query option, subtracted by the time 
spent in waiting for final response from servers
   
   
https://github.com/apache/pinot/blob/497a90b725bd60f45cceb9522a31c2f85839d10b/pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/SingleConnectionBrokerRequestHandler.java#L142
   
   and then passed to `DataTableReducerContext`
   
   
https://github.com/apache/pinot/blob/bc567a02b884b115d15351aada46305bf6df414c/pinot-core/src/main/java/org/apache/pinot/core/query/reduce/BrokerReduceService.java#L160-L162
   
   However, only `GroupByDataTableReducer` has ever referenced to this value, 
that is, we could see `AggregationDataTableReducer`, `DistinctDataTableReducer` 
executed beyond the timeout time. 
   For example, in the following log, you see `timeMs=7617`, 
`brokerReduceTimeMs=2864`, while query being `select 
percentile(_delivery_fee,50) from events_REALTIME limit 100000 
OPTION(timeoutMs=4750);`
   
   ```
   2025/07/10 18:10:56.487 INFO [QueryLogger] 
[jersey-server-managed-async-executor-1] [cid=1538534192000001388] 
requestId=1538534192000001388,table=events_REALTIME,timeMs=7617,docs=22157799/22157794,entries=0/22157799,segments(queried/processed/matched/consumingQueried/consumingProcessed/consumingMatched/unavailable):148/148/148/1/1/1/0,consumingFreshnessTimeMs=1752171017918,servers=1/3,groupLimitReached=false,groupWarningLimitReached=false,brokerReduceTimeMs=2864,exceptions=1,serverStats=(Server=SubmitDelayMs,ResponseDelayMs,ResponseSize,DeserializationTimeMs,RequestSentDelayMs);pinot-server-server-0-6_R=0,-1,0,0,1;pinot-server-server-0-3_R=0,4621,177262737,63,1;pinot-server-server-0-7_R=1,-1,0,0,0,offlineThreadCpuTimeNs(total/thread/sysActivity/resSer):0/0/0/0,realtimeThreadCpuTimeNs(total/thread/sysActivity/resSer):1190142322/1145639363/0/44502959,clientIp=unknown,queryEngine=singleStage,offlineMemAllocatedBytes(total/thread/resSer):0/0/0,realtimeMemAllocatedBytes(total/thread/re
 sSer):0/0/0,query=select percentile(_delivery_fee,50) from events_REALTIME 
limit 100000 OPTION(timeoutMs=4750);
   2025/07/10 18:10:56.487 ERROR [PinotClientRequest] 
[jersey-server-managed-async-executor-1] Query processing exceptions: {427=2 
servers [pinot-server-server-0-6_R, pinot-server-server-0-7_R] not responded}
   ```
   
   
   Even in `GroupByDataTableReducer`,  the timeout is only checked in 
`getIndexedTable`
   
https://github.com/apache/pinot/blob/767e3cddd6472bb12307af3e78f82d471be1559d/pinot-core/src/main/java/org/apache/pinot/core/query/reduce/GroupByDataTableReducer.java#L230-L232


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to