SODA:大规模基于流的分布式计算机系统的优化调度器
1. 引言
在当今的计算机系统中,处理大规模的流式数据变得越来越重要。有一个名为System S的高度可扩展分布式计算机系统中间件,它旨在处理涉及大量流式数据的复杂作业。与早期的分布式流处理系统不同,System S支持任意复杂的处理,并且其设计假设系统大部分时间面临的负载会远远超过系统容量。因此,在这样复杂且过载的流式环境中进行调度是一个具有挑战性的问题,需要新颖的解决方案。
SODA(Scheduling Optimizer for Distributed Applications)就是为System S设计的调度器。它需要动态地响应资源可用性、作业的到达和离开、传入数据速率等变化,同时实时解决高度复杂的优化问题并保持可扩展性。下面我们来详细了解SODA的目标、功能和设计。
2. SODA的目标和功能
与传统作业不同,流处理作业通常是开放式的,只要有输入数据就可以持续执行。因此,传统的调度指标如完成时间和总工期不再适用。SODA的主要目标和功能如下:
2.1 目标
- 重要性最大化 :SODA试图最大化基于数据流图终端流的“重要性”的效用理论函数。重要性通常基于流的数量或质量衡量。
- 资源利用率平衡 :通过最小化模拟资源利用率的指标的加权平均值,平衡系统中所有资源(节点处理能力、网络带宽)的负载。
2.2 功能
- 作业准入 :SODA确定哪些作