單體調度
定義
一個集群中只有一個節點運行調度進程,該調度進程負責集群資源管理和任務調度,也就是說單體調度器擁有全局資源視圖和全局任務
特征
1. 容易實現對作業的約束並實施全局性的調度策略,因此適合批處理任務和吞吐量較大、運行時間較長的任務
2. 容易進行狀態同步,並且很穩定
3. 調度算法全部內置在核心調度器中,因此調度框架的靈活性和策略的擴展性不高,但是調度算法可以擴展甚至自定義
4. 存在單點故障的可能性
應用
Google Borg/Kubernetes
兩層調度
定義
資源的使用狀態同時由中央調度器和第二層調度器管理,中央調度器從整體上進行資源的管理和分配,將資源分配到第二層調度器;再由第二層調度器負責將資源和具體的任務進行配對,因此第二層調度可以由多個調度器以支持不同的任務類型
Mesos調度架構
架構圖
Resource Offer機制:Mesos Master主動將節點空閑資源,以類似發放的形式發送給每個框架,如果框架需要則使用,不需要則歸還
資源分配算法
最大最小公平算法
主導資源公平算法
共享狀態調度
架構圖
State Storage模塊負責存儲和維護資源以及任務狀態
Resource Pool為多個節點集群,接收並執行Scheduler調度的任務
Scheduler值包含任務調度操作
舉例:Google Omega
並發控制
樂觀並發控制:在樂觀並發控制中,用戶讀取數據時不鎖定數據。當一個用戶更新數據時,系統將進行檢查,查看該用戶讀取數據后其他用戶是否又更改了該數據。如果其他用戶更新了數據,將產生一個錯誤。一般情況下,收到錯誤信息的用戶將回滾事務並重新開始。對應於樂觀並發調度,強調時候檢測,在事務提交時檢查是否避免了沖突,若避免則提交,否則回滾並自動重新執行
悲觀並發控制:一個鎖定系統,可以阻止用戶以影響其他用戶的方式修改數據。如果用戶執行的操作導致應用了某個鎖,只有這個鎖的所有者釋放該鎖,其他用戶才能執行與該鎖沖突的操作。對應於悲觀並發控制,強調事前預防,在事務執行時檢查是否會存在沖突,不存在,則繼續執行,否則等待或回滾