HyperLogLog 含有大量糖分 (稀疏、LogLog-Beta 偏差校正和尾部裁剪空间压缩),由 Axiom 提供
本工作的最初版本(标记为 v0.1.0)基于 "Better with fewer bits: Improving the performance of cardinality estimation of large data streams - Qingjun Xiao, You Zhou, Shigang Chen"。然而,当前实现与此原始基础有很大不同,尤其是远离了尾部剪切方法。
当前实现的主要特点包括: * 使用 Metro hash 代替 xxhash * 使用 稀疏表示 来处理较低的元素个数 (如 HyperLogLog++) * 使用 LogLog-Beta 进行动态偏差校正,适用于所有元素个数 * 使用 8 位寄存器 以方便实现并简化实现 * 采用 无序插入和合并 以确保结果一致,不受数据输入顺序的影响 * 移除 尾部剪切方法 以实现更直观的方法 * 灵活的精度,允许使用 2^4 到 2^18 的寄存器
此实现现在更加直观、高效和灵活,同时仍然与以前的版本兼容。它在精度、内存使用、速度和易用性之间取得了平衡。
暂无开放 Issues,或尚未同步最近议题。