NameFilter: Achieving Fast Name Lookup with Low Memory Cost Via Applying Two-Stage Bloom Filters
Yi Wang,Tian Pan,Zhian Mi,Huichen Dai,Xiaoyu Guo,Ting Zhang,Bin Liu,Qunfeng Dong
DOI: https://doi.org/10.1109/infcom.2013.6566742
2013-01-01
Abstract:In this paper we design, implement and evaluate NameFilter, a two-stage Bloom filter-based scheme for Named Data Networking name lookup, in which the first stage determines the length of a name prefix, and the second stage looks up the prefix in a narrowed group of Bloom filters based on the results from the first stage. Moreover, we optimize the hash value calculation of name strings, as well as the data structure to store multiple Bloom filters, which significantly reduces the memory access times compared with that of non-optimized Bloom filters. We conduct extensive experiments on a commodity server to test NameFilter's throughput, memory occupation, name update as well as scalability. Evaluation results on a name prefix table with 10M entries show that our proposed scheme achieves lookup throughput of 37 million searches per second at low memory cost of only 234.27 MB, which means 12 times speedup and 77% memory savings compared to the traditional character trie structure. The results also demonstrate that NameFilter can achieve 3M per second incremental updates and exhibit good scalability to large-scale prefix tables.