Cuckoo Heavy Keeper与流处理中维持重击者的平衡艺术
数据结构与算法
2025-11-24 v3 分布式、并行与集群计算
摘要
在数据库和数据流中寻找重击者是一个基本问题,其应用涵盖网络监控、数据库查询优化、机器学习等。近似算法提供了实用的解决方案,但它们在吞吐量、内存使用和准确性之间存在权衡。此外,现代应用要求超越顺序处理的能力,需要并行扩展并支持并发查询和更新,这进一步复杂化了这些权衡。对这些权衡的分析引出了我们提出的流算法Cuckoo Heavy Keeper (CHK)背后的关键思想。该方法引入了一种区分频繁项与非频繁项的逆向过程,解锁了传统方法无法实现的新算法协同效应。通过进一步分析以并行性为重点的竞争指标,我们提出了一个平衡可扩展性方面并根据查询和插入的相对频率提供优化选项的算法框架。该框架能够并行化任何重击者检测算法。除了算法分析,我们还对真实世界和合成数据进行了广泛评估,涵盖不同的分布和查询选择性,代表了应用需求的广泛范围。与最先进方法相比,CHK在低偏斜数据和严格内存约束下,吞吐量提升了1.7-5.7倍,准确性提升了多达四个数量级。这些特性使其并行实例即使在高速查询率下也能实现近线性扩展和低延迟的重击者查询。我们期望CHK及其并行实例的通用性将影响大规模数据分析和流处理系统中的广泛工具和应用。
引用
@article{arxiv.2412.12873,
title = {Cuckoo Heavy Keeper and the balancing act of maintaining heavy hitters in stream processing},
author = {Vinh Quang Ngo and Marina Papatriantafilou},
journal= {arXiv preprint arXiv:2412.12873},
year = {2025}
}