欧美人与禽2O2O性论交,秋霞免费视频,国产美女视频免费观看网址,国产成人亚洲综合网色欲网

Trino中Task源碼解析(tars源碼分析)

我們知道,在Trino中一個Query會拆分成多個Stage,一個Stage又會拆分成多個Task,Task是跑在Worker上的具體任務,那一個Task周圍有哪些息息相關的類和方法呢,需要我們去閱讀源碼分析。

整體框架

和Task關系密切的幾個類以及關系如下圖所示

Trino中Task源碼解析(tars源碼分析)

TaskResource

Task的創(chuàng)建,刪除,更新都是通過Http請求來完成,由TaskResource這個類來接受請求, 但具體的實現(xiàn)方法都封裝在SqlTaskManager中,TaskResource接收到請求后調用SqlTaskManager中對應的方法,以創(chuàng)建Task為例:

Trino中Task源碼解析(tars源碼分析)

SqlTaskManager

該類中有許多對Task進行操作的方法,比如創(chuàng)建,更新,取消,中止等等

Trino中Task源碼解析(tars源碼分析)

上圖中的類屬性tasks就是用來保存所有task相關信息的,本質是一個不可驅逐的緩存,緩存中key是taskId(每個task的專屬標識), value是對應創(chuàng)建的sqlTask對象。

因此SqlTaskManager中對Task操作就是從tasks中根據(jù)taskId拿到SqlTask對象,再調用對應的方法。

Trino中Task源碼解析(tars源碼分析)

StucksplitTasksInterrupter

SqlTaskManager中還有個很重要的特性就是StuckSplitTasksInterrupter,他會定時的去檢查是否有task卡住,如果卡住則被標記為stuck并會被kill,至于是否開啟這個功能以及多長時間沒響應才算卡住,都可以通過參數(shù)去配置。

Trino中Task源碼解析(tars源碼分析)

Trino中Task源碼解析(tars源碼分析)

可以看到代碼中會去遍歷當前所有的runningSplit,如果該runningSplit執(zhí)行時間大于設置的閾值,則會被篩選出來拿到對應的TaskId, 再調用sqlTask的fail方法,結束這個卡住的Task

SqlTask

每一個Task都對應于一個SqlTask對象,其中比較重要的幾個屬性:

  1. TaskStateMachine: 用來記錄Task的狀態(tài),在調用sqlTask的cancel, abort等接口時,其實就是修改狀態(tài)機的狀態(tài),并且狀態(tài)機會有一個Listener監(jiān)聽狀態(tài)機的變化,一旦有更新,就會執(zhí)行相應的操作

Trino中Task源碼解析(tars源碼分析)

  1. SqlTaskExecution: 在創(chuàng)建SqlTask對象時,同時也會創(chuàng)建一個對應的SqlTaskExecution。 SqlTaskExecution主要是負責Split到Driver的調度,并把split和TaskExecutor關聯(lián)起來, 通過創(chuàng)建一個TaskHandle放到TaskExecutor的隊列中去等待執(zhí)行。在創(chuàng)建TaskHandle時,會添加一個Listener,如果這個Task的狀態(tài)被設置為Terminating或者Done時,就會調用TaskExecutor中的removeTask方法來真正的取消這個task任務

Trino中Task源碼解析(tars源碼分析)

TaskExecutor

TaskExecutor是具體執(zhí)行Task任務的地方。他有一個線程池,線程池的大小可以通過參數(shù)配置,初始化的時候就會創(chuàng)建出對應個數(shù)的線程,每個線程執(zhí)行一個TaskRunner,在TaskRunner中,while循環(huán)從waitingSplit中拿到Split,放到runningSplit中并執(zhí)行這個split。前面提到的StuckSplitTasksInterrupter中獲取的runningSplit信息就是從這個地方更新的。而waitingSplit中的split就是在上面提到的SqlTaskExecution中放進去的。

Trino中Task源碼解析(tars源碼分析)

Trino中Task源碼解析(tars源碼分析)Trino中Task源碼解析(tars源碼分析)

相關新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部