We use cookies to improve your experience with our site.

数据流滑动窗口连接的卸载技术研究

Load Shedding for Window Joins over Streams

  • 摘要: 随着数据流应用系统的快速流行,流数据管理系统对数据库技术提出了巨大挑战。例如在数据流上作连接操作时,因为流数据的在线、无界、速度可变等特性,通常采用的做法是改变连接的语义,将参与连接的元组集合限制在滑动窗口上进行。另外,由于数据流经常是爆发性的且数据特征可能随时变化,当输入流速超过系统处理能力时,系统会产生过载且性能下降。为解决这一问题,卸载技术是有效的途径之一。针对滑动窗口连接操作的卸载问题,目前开展了许多积极的研究探索并产生了一些研究成果。例如:如何评估窗口连结操作的执行代价,当系统超载时通过随机卸载或语义卸载使系统稳定,卸载的目标为产生连接结果的最大子集等等。如何在流数据速度特征可变的情况下建立可靠的统计信息,以便卸载时进行有效的语义卸载,最终得到最大结果子集。为解决这一问题,本文提出了一些新的卸载技术,主要贡献包括:(1)提出双窗口模型的概念:在分析数据流基于窗口连接操作模型及代价模型的基础上,建立了包括连接窗口和辅助窗口在内的双窗口模型,前者用于两个流的连接操作,后者用于建立预估连接结果的统计信息,为语义卸载提供有效支持。分别采用了窗口计数器、预估数组和频率数组来维护相应统计信息,并在实际中使用树状数组取代频率数组以提高计算效率;(2)提出前后端卸载的策略:在双窗口模型上采用了前后端卸载的方法,经分析和推导证明了在不同数据流速情况下,通过前端卸载和后端卸载的配合使用,前端采用随机卸载而后端采用理想的语义卸载,从而得到连接结果的最大子集;(3)提出了当输入流流速比发生变化时资源重新配置策略:通过重新分配CPU资源使两个输入流能够保持同步;通过重新配置窗口大小,证明了当输入流速比发生变化时辅助窗口内的统计信息仍然保持有效性;(4)提出新颖的“后端卸载”方法:在流速达到一定阀值需要启动后端卸载时,采用让元组进入相应连接窗口不进行探测操作,在节省CPU资源的同时保证了产生尽可能多的连接结果数。对合成数据集和真实数据集的全面测试表明,本文提出的卸载策略的性能均好于现有其它方法。

     

    Abstract: We address severalload shedding techniques over sliding window joins. We firstconstruct a dual window architectural model including aux-windowsand join-windows, and build statistics on aux-windows. With thestatistics, we develop an effective load shedding strategyproducing maximum subset join outputs. In order to accelerate theload shedding process, binary indexed trees have been utilized toreduce the cost on shedding evaluation. When streams have higharrival rates, we propose an approach incorporating front-sheddingand rear-shedding, and find an optimal trade-off between them. Asfor the scenarios of variable speed ratio, we develop a planreallocating CPU resources and dynamically resizing the windows.In addition, we prove that load shedding is not affected duringthe process of reallocation. Both synthetic and real data are usedin our experiments, and the results show the promise of ourstrategies.

     

/

返回文章
返回