论文部分内容阅读
数据流作为一种新的数据存在形式,广泛应用于诸如金融数据分析、传感器网络、记忆位置的服务等现实应用中。数据流查询处理已经成为当前大数据环境下数据库研究领域的一个热点问题。伴随着分布式计算环境的兴起,分布并行化已经成为当前数据流研究领域的一个重要的发展趋势,实现流处理的分布并行化不仅能够满足用户日益增长的查询实时性需求,还能够克服单机集中式查询处理方法所遇到的计算能力不足等问题。数据流n-of-N Skyline查询是一种新型的数据流Skyline查询。其查询形式相对于一般数据流Skyline查询更加复杂,对计算节点性能要求更高。而且当数据流工作负载变化过大时,现有的单机集中式查询方法因计算能力限制难以提供更高的查询效率与灵活性。因此,针对数据流n-of-N Skyline查询,对其进行并行化处理研究具有很重要现实意义。针对已有的单机集中式n-of-N Skyline查询算法无法满足更高的查询实时性的问题,提出了一种适用于n-of-N Skyline查询的并行查询模型nNPM,并基于此模型提出了一种分布并行n-of-N Skyline查询算法PnNS。在PnNS算法中,每个并行计算节点只需维护局部滑动子窗口数据信息,而且并行计算节点之间不需要进行交互通信就可完成计算任务,结果输出在下一级节点实现。实验结果表明,当数据流工作负载较大时,相比于传统单机集中式查询算法,PnNS算法的查询效率随着并行度的增加接近于线性增长;当滑动窗口规模、数据维度等发生改变时,PnNS算法依然能够保持较好的并行查询处理性能。针对并行n-of-N Skyline查询过程中由于并行计算节点性能的差异而引起的负载不均衡问题,提出了一种基于滑动窗口调整的动态负载均衡算法LBA。该算法采用一种基于簇的子窗口划分策略,并且通过划分反馈模块实时调整并行计算节点维护的子窗口大小,进而达到在并行计算节点之间调整负载的目的。实验结果表明,LBA算法能够有效改善并行计算节点之间的负载均衡性,使节点处理延迟标准偏差下降36%;当滑动窗口大小、并行计算节点个数、数据维度发生改变时,LBA算法依然能够使分布并行n-of-N Skyline查询的并行计算节点间保持较好的负载均衡性。针对并行n-of-N Skyline查询过程中系统整体负载过大或过小所造成的查询计算节点资源供应不足或过剩问题,提出了一种弹性可扩展的并行查询模型EPM,并基于该模型提出了一种弹性节点资源配置算法ENPA。在ENPA算法所采用的弹性协议中,将数据流工作负载抖动性以及计算节点自身处理延迟考虑在内,综合整体负载状况进行并行计算节点群的扩展或收缩。实验结果表明,ENPA能够弹性地对并行计算节点规模进行调整以匹配实时工作负载,保证系统高性价比。