论文部分内容阅读
随着数据流应用系统的快速发展,流数据管理系统对数据库技术提出了巨大挑战。由于数据流经常是爆发性的且数据特征可能随时变化,因此要求数据流管理系统具有良好的自适应性。当流数据的速率超过系统资源限制时,系统会产生过载导致性能下降甚至瘫痪。为解决这一问题,卸载技术是一种行之有效的方法。在这种研究背景下,本文在深入分析数据流卸载技术相关问题的基础上,提出了一些新的卸载策略,并通过大量试验,验证了提出策略的高效性。下面对本文的主要工作和贡献总结如下:
首先,提出了一种全面考虑CPU处理能力及内存容量的QoS自适应框架。该框架能够在系统资源有限、数据输入速度及特征可变的情况下,使系统具有良好的自适应能力以确保高质量的QoS。框架包括上下游两个部分,其中上游部分为内存管理器,由卸载器、清洗器和调度器三个部分构成,主要负责对DSMS中的内存缓冲区进行有效管理。试验结果表明,该框架具有稳定性好、健壮性强的优点,在错失率相同的情况下,卸载率、系统资源利用率等几方面性能均优于现有其它方法。在这方面的主要内容包括:
(1)将基于控制理论的PID控制器引入内存负载管理:分析现有队列管理方法的基础上,在卸载器的设计中运用了PID控制器,将队列长度维持在期望的占空比,以便达到降低排队延迟、提高吞吐量,同时保持相当的队列空间来吸收突发且重要数据的目的。将自动控制理论的相关技术引入数据流管理是我们的突出贡献点,是富有创新性且积极有效的;
(2)提出了截止期.重要性优先的实时调度算法DIF:当在实际应用中需要同时考虑流数据截止期和重要性两个特征参数并为流数据分派优先级时,针对其它调度算法的不足,将数据优先级作为流数据相对截止期和重要性的线性加权平均,并同时考虑了系统的负载情况。试验表明在所有负载条件下,DIF算法相对于其它调度算法在性能方面具有明显改善;
(3)提出了有效的清洗策略:运用一阶指数平滑的方法来估算每个元组平均处理时间及在队列中的平均等待时间,在此基础上提出了有效的清洗策略将不满足查询QoS要求的数据从队列中及时清除以节省系统资源。
其次,针对数据流上滑动窗口的连接操作,提出了一些新的卸载技术,使得系统在过载的情况下通过丢弃连接结果少的元组,达到减轻系统负载使系统稳定的目的,同时得到连接结果的最大子集。对合成数据集和真实数据集的全面测试表明,本文提出的卸载策略的性能均好于现有其它方法。
在这方面的主要内容包括:
(1)提出双窗口模型的概念:在分析数据流基于窗口连接操作模型及代价模型的基础上,建立了包括连接窗口和辅助窗口在内的双窗口模型,前者用于两个流的连接操作,后者用于建立预估连接结果的统计信息,为语义卸载提供有效支持。分别采用了窗口计数器、预估数组和频率数组来维护相应统计信息,并在实际中使用树状数组取代频率数组以提高计算效率;
(2)提出前后端卸载的策略:在双窗口模型上采用了前后端卸载的方法,经分析和推导证明了在不同数据流速情况下,通过前端卸载和后端卸载的配合使用,前端采用随机卸载而后端采用理想的语义卸载,从而得到连接结果的最大子集;
(3)提出了当输入流流速比发生变化时资源重新配置策略:通过重新分配CPU资源使两个输入流能够保持同步;通过重新配置窗口大小,证明了当输入流速比发生变化时辅助窗口内的统计信息仍然保持有效性;
(4)提出新颖的“后端卸载”方法:在流速达到一定阈值需要启动后端卸载时,采用让元组进入相应连接窗口不进行探测操作,在节省CPU资源的同时保证了产生尽可能多的连接结果数。