在许多网络系统中,布隆过滤器用于高速的集合成员关系测试。它们允许一小部分假阳性答案,但空间效率非常高。但它们不允许从集合中删除项,之前试图扩展“标准”布隆过滤器以支持删除,都会降低空间或性能。本文提出了一种新的数据结构,称为布谷鸟过滤器,可以取代布隆过滤器用于近似集成员测试。布谷鸟过滤器支持动态添加和删除元素,同时实现了比布隆过滤器更高的性能。对于存储许多项并以中等低误报率为目标的应用程序,布谷鸟过滤器比空间优化的布隆过滤器具有更低的空间开销。实验结果还表明,布谷鸟过滤器的性能优于之前扩展布隆过滤器的数据结构,在时间和空间上都大幅支持删除。
CUCKOO FILTER ALGORITHMS
在本文中,用于布谷鸟滤波器的布谷鸟散列表的基本单位称为条目。每个条目存储一个指纹。散列表由一个桶数组组成,其中一个桶可以包含多个元素。
本节描述布谷鸟过滤器如何执行插入、查找和删除操作。第3.1节介绍了部分键的布谷鸟散列,这是标准布谷鸟散列的一个变体,它使布谷鸟过滤器能够动态插入新元素。这种技术最早是在之前的工作[11]中引入的,但当时的目的是提高存储完整键的常规cuckoo散列表的查找和插入性能。重点对仅使用指纹的部分密钥布谷鸟散列算法的空间效率进行优化和分析,使布谷鸟滤波器与Bloom滤波器竞争,甚至比Bloom滤波器更紧凑