gortiz commented on issue #16060:
URL: https://github.com/apache/pinot/issues/16060#issuecomment-2969906025
This diagram is a bird's-eye view of the thread model on a server when
handling MSE requests.
The thread that
```mermaid
sequenceDiagram
box Grpc thread
participant GrpcServer
end
box Submission Thread
participant QueryServer
end
box ExecutionThread 1
participant QueryRunner
participant PipelineBreakerExecutor
end
box ExecutionThread 2
participant OpChainSchedulerService
end
participant MultiStageOperator
activate GrpcServer
GrpcServer ->> QueryServer: submit
activate QueryServer
QueryServer ->> QueryRunner: processQueryAsync
activate QueryRunner
QueryRunner -->> QueryServer: return not waiting
QueryServer -->> GrpcServer: return
deactivate QueryServer
deactivate GrpcServer
QueryRunner ->> QueryRunner: processQueryBlocking
QueryRunner ->> PipelineBreakerExecutor: executePipelineBreakers
PipelineBreakerExecutor ->> MultiStageOperator: nextBlock
Note right of MultiStageOperator: Starts new threads,<br/> but wait for
them
MultiStageOperator -->> PipelineBreakerExecutor: return
PipelineBreakerExecutor -->> QueryRunner: return
QueryRunner ->> OpChainSchedulerService: register
activate OpChainSchedulerService
OpChainSchedulerService -->> QueryRunner: return not waiting
deactivate QueryRunner
OpChainSchedulerService ->> MultiStageOperator: nextBlock
Note right of MultiStageOperator: Starts new threads,<br/> but wait for
them
MultiStageOperator -->> OpChainSchedulerService: return
deactivate OpChainSchedulerService
```
MultiStageOperators periodically call `sampleAndCheckInterruption`, which
could interrupt the thread and modify the operator to return an error block.
--
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]