时间:2022-12-22 06:30:01 | 来源:信息时代
时间:2022-12-22 06:30:01 来源:信息时代
负载均衡器 : 当数据流管理系统在过载情况下,系统中负责检测、处理并保证系统性能达到可接受水平的管理模块。负载均衡器一般通过分流负载或丢弃数据流元组以降低系统对内存等资源的需求。
与传统数据应用不同,数据流管理系统需要处理大量连续、快速、随时间变化的数据,这些数据连续到达,频繁变化,到达的速度也可能突然发生变化,数据的更新通常以插入为主,数据量事前是不确定的,也可能是无限的。当突发流量超过系统的处理能力时,如果不采取相应的措施,会导致整个系统的吞吐量和响应时间都恶化。同时,一些数据流应用的查询处理具有硬实时性。例如,对于出现故障的设备,对战场上身临险境的士兵,处理时间要求非常高,不及时发现和处理险情,容易造成人身伤亡; 数据流管理系统需要处理的一些数据是非线性的,主要表现在数据量的突发性和流速的不稳定性。发生紧急情况时(如设备发生故障、路面出现车祸、战场出现敌情),大量的数据需要立即处理。
有效地降低内存资源的消耗而又尽可能减少服务质量的下降是数据流管理系统的一个努力目标。对于突发的、大容量的数据流负载,系统应能够通过调整查询处理策略,自适应地满足它的实时处理要求。这包括: 实时服务质量模型的建立,查询处理方法,查询优化方法,过载调整技术等的综合运用。
采用负载均衡技术要有效降低系统负载,必须解决好以下三个问题:
(1)放置采样器的位置: 采样器如果放置在最前端,即输入端查询操作前面,可以最有效地降低负载。但是,数据丢弃操作放置如果太靠前,会影响较多的查询,并给系统带来很大的误差。反之,放置位置越靠后,负载降低性能会比较差。
(2)启动数据丢弃操作的时机: 不能每次运行某查询操作时都要运行相应的采样器,只有当节点负载超出一定水平时才启动数据采样操作进行降载处理。因此,必须有效判断节点的负载情况,选择适当时机启动采样操作。
(3) 丢掉数据流元组的数量: 显然,丢掉尽量多的数据流元组能很快降低节点负载,但会增大误差; 反之,如果丢掉数据流元组数量太少,虽然误差较小,但不能有效降低节点负载。
为了解决数据流处理系统的过载问题,Aurora系统通过服务质量监控器连续不断地监控系统的执行性能,在监测到过载状态和系统性能低下时激活负载均衡器。负载均衡器将分流负载或丢弃部分数据流元组,保证系统性能达到可按受的水平。服务质量由应用管理员根据实际应用的要求来确定。负载脱落技术是负载均衡器实现其功能的一种常用技术。负载脱落是指通过丢弃一定数量的数据流元组,在部分牺牲准确性和完整性的条件下,保证系统的性能。负载脱落算法可以根据采用的处理方式分为以下两种: 随机的负载脱落算法和基于语义的负载脱落算法。随机负载脱落是指在发现数据流元组输入超过系统处理能力时,通过按一定的比重随机丢弃部分数据流元组保证系统的正常运行。基于语义的负载脱落,通过用户对数据流处理语义的理解,有选择地丢弃一部分数据流元组,使数据流元组损失对系统性能和输出结果的影响最小化。目前普遍采用的负载脱落算法一般是基于语义的。基于语义的负载脱落算法与系统的上下文有关,主要考虑的问题是何时、何地以及如何进行。D.Carney和U.Cetintemel等提出了通过丢弃数据流元组实现的随机负载脱落和通过过滤数据流元组实现的语义负载脱落,过滤是有控制地丢弃一些不重要的数据流元组来保证系统的服务质量。B. Babcock和M. Datar等指出了D. Carney的不足——该基于语义的负载脱落并不能有效地保证查询的精确性,从而提出改善精确性的方法,并通过配置随机抽样算法来具体实现基于语义的负载脱落。
在数据流管理系统中,绝大多数的查询为连续查询,数据流源源不断到达,执行环境不断改变,数据流的流速等流的特性也是动态改变的。数据流具有突发性,要求数据流管理系统应当能够自适应环境的变化,特别是猝然变化的数据流速和流量。研究自适应的数据流管理系统负载均衡算法是负载均衡器未来的研究方向之一。