亚 O(log n) 乱序滑动窗口聚合
数据结构与算法
2018-10-29 v1 数据库
摘要
滑动窗口聚合对数据流中最新信息进行总结。用户指定该总结的计算方式,通常指定为结合二元算子,因为这是已知最通用的形式,可借此避免朴素地扫描每个窗口。对于严格按序到达,在假设结合算子的前提下存在每窗口变化 时间的算法。与此同时,实践中流数据略有乱序到达十分常见,例如由于时钟漂移或通信延迟。遗憾的是,对于乱序流,人们不得不求助于高延迟的缓冲,或付出每插入/淘汰 时间的代价,其中 为窗口大小。本文提出 FiBA 的设计、分析与实现,一种新颖的滑动窗口聚合算法,其每插入或淘汰的摊还上界为 时间,其中 为插入或淘汰值到窗口较近一端的距离。这意味着对于按序到达为 时间,对于轻微乱序到达近乎 时间,并随着 趋近 平滑过渡到 。我们还证明了运行时间的匹配下界,表明其最优性。我们的算法与先前最先进技术同样通用:它仅需结合性,而不需可逆性或交换性。该算法的核心在于手指查找技术、惰性重平衡与位置感知部分聚合的精心结合。我们进一步展示如何回答聚合子窗口以供窗口共享的范围查询。最后,我们的实验评估表明 FiBA 在实践中表现良好并支持理论发现。
引用
@article{arxiv.1810.11308,
title = {Sub-O(log n) Out-of-Order Sliding-Window Aggregation},
author = {Kanat Tangwongsan and Martin Hirzel and Scott Schneider},
journal= {arXiv preprint arXiv:1810.11308},
year = {2018}
}