【发布时间】:2019-12-14 02:39:22
【问题描述】:
我正在学习 Presto,并试图弄清楚 Presto 如何杀死正在运行的查询。但我对实际过程感到困惑。
我知道当 Presto 得到一个 kill 请求,或者它决定 kill 一个消耗太多内存的查询时,它会调用 SqlQueryExecution.fail,但是这个方法似乎只是改变了 QueryStateMachine,那么如何停止正在运行线程?
@Override
public void fail(Throwable cause)
{
requireNonNull(cause, "cause is null");
stateMachine.transitionToFailed(cause);
}
我想知道它在哪一步中止正在运行的线程
【问题讨论】:
-
状态机的监听器启动下面描述的进程 Piotr。
标签: presto