分布式调度架构

单体调度

定义

    一个集群中只有一个节点运行调度进程,该调度进程负责集群资源管理和任务调度,也就是说单体调度器拥有全局资源视图和全局任务

特征

1. 容易实现对作业的约束并实施全局性的调度策略,因此适合批处理任务和吞吐量较大、运行时间较长的任务

2. 容易进行状态同步,并且很稳定

3. 调度算法全部内置在核心调度器中,因此调度框架的灵活性和策略的扩展性不高,但是调度算法可以扩展甚至自定义

4. 存在单点故障的可能性 

应用

Google Borg/Kubernetes

两层调度

定义

    资源的使用状态同时由中央调度器和第二层调度器管理,中央调度器从整体上进行资源的管理和分配,将资源分配到第二层调度器;再由第二层调度器负责将资源和具体的任务进行配对,因此第二层调度可以由多个调度器以支持不同的任务类型

Mesos调度架构

架构图

Resource Offer机制:Mesos Master主动将节点空闲资源,以类似发放的形式发送给每个框架,如果框架需要则使用,不需要则归还

资源分配算法

最大最小公平算法

主导资源公平算法

 共享状态调度

 架构图

State Storage模块负责存储和维护资源以及任务状态

Resource Pool为多个节点集群,接收并执行Scheduler调度的任务

Scheduler值包含任务调度操作

举例:Google Omega

并发控制

乐观并发控制:在乐观并发控制中,用户读取数据时不锁定数据。当一个用户更新数据时,系统将进行检查,查看该用户读取数据后其他用户是否又更改了该数据。如果其他用户更新了数据,将产生一个错误。一般情况下,收到错误信息的用户将回滚事务并重新开始。对应于乐观并发调度,强调时候检测,在事务提交时检查是否避免了冲突,若避免则提交,否则回滚并自动重新执行

悲观并发控制:一个锁定系统,可以阻止用户以影响其他用户的方式修改数据。如果用户执行的操作导致应用了某个锁,只有这个锁的所有者释放该锁,其他用户才能执行与该锁冲突的操作。对应于悲观并发控制,强调事前预防,在事务执行时检查是否会存在冲突,不存在,则继续执行,否则等待或回滚

总结对比

猜你喜欢

转载自www.cnblogs.com/battlescars/p/scheduler_architecture.html