siddharthteotia commented on PR #9571: URL: https://github.com/apache/pinot/pull/9571#issuecomment-1279450540
Do we agree that this is the end state ? User specifies a query timeOut T which from user's perspective is the `end to end query timeOut`. If Pinot does not finish processing the query within T, it should terminate execution (and ideally not leave any lingering execution resources) In the current engine, T can be specified at Instance level / cluster level (broker config) or query option level or table level. The last one probably does not make sense for a multi table query in multi-stage engine. Broker uses T depending on where it is coming from, spends some time T' in query planning etc and sends the remaining (T - T') to worker nodes when dispatching the plan. This is what is done in the current engine. For the multi-stage engine as well, regardless of how many stages the plan is going to be executed in, X = (T - T') is the max time subsequent stages have. If for example leaf stage itself takes more time than X, then it should terminate / interrupt threads and downsteam stages (parents) should detect that timeOut has expired, mailbox should not expect anything. So, the entire operator pipeline / chain gets terminated if X gets exhausted anywhere -- 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]
