Abstract
Key-value lookup engines running in fast memory are crucial components of many networked and distributed systems such as packet forwarding, virtual network functions, content distribution networks, distributed storage, and cloud/edge computing. These lookup engines must be memory-efficient because fast memory is small and expensive. This work presents a new key-value lookup design, called Ludo Hashing, which costs the least space (3.76 + 1.05l bits per key-value item for l-bit values) among known compact lookup solutions including the recently proposed partial-key Cuckoo and Bloomier perfect hashing. In addition to its space efficiency, Ludo Hashing works well with most practical systems by supporting fast lookups, fast updates, and concurrent writing/reading. We implement Ludo Hashing and evaluate it with both micro-benchmark and two network systems deployed in CloudLab. The results show that in practice Ludo Hashing saves 40% to 80%+ memory cost compared to existing dynamic solutions. It costs only a few GB memory for 1 billion key-value items and achieves high lookup throughput: over 65 million queries per second on a single node with multiple threads.
- CloudLab. https://www.cloudlab.us/.Google Scholar
- Implementation of farmhash. https://github.com/google/farmhash.Google Scholar
- Implementation of Ludo Hashing in CGoogle Scholar
- . https://github.com/QianLabUCSC/Ludo.Google Scholar
- Implementation of Othello: a concise and fast data structure for classification. https://github.com/sdyy1990/Othello.Google Scholar
- Intel DPDK: Data Plane Development Kit. https://www.dpdk.org.Google Scholar
- Pktgen-DPDK. https://github.com/pktgen/Pktgen-DPDK.Google Scholar
- Implementation of presized cuckoo map. https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/util/presized_cuckoo_map.h, 2016.Google Scholar
- Abu-Libdeh, H., Costa, P., Rowstron, A., O'Shea, G., and Donnelly, A. Symbiotic routing in future data centers. In Proc. of ACM SIGCOMM (2010).Google Scholar
Digital Library
- Belazzougui, D., Boldi, P., Pagh, R., and Vigna, S. Monotone minimal perfect hashing: searching a sorted table with $O(1)$ accesses. In Proc. of ACM SODA (2009).Google Scholar
Cross Ref
- Belazzougui, D., and Botelho, F. C. Hash, displace, and compress. In Proc. of Algorithms-ESA (2009).Google Scholar
Cross Ref
- Bloom, B. H. Space/time trade-offs in hash coding with allowable errors. Communications of the ACM 13, 7 (1970), 422--426.Google Scholar
Digital Library
- Cain, J. A., Sanders, P., and Wormald, N. The Random Graph Threshold for k-orientiability and a Fast Algorithm for Optimal Multiple-Choice Allocation. In Proc. of ACM-SIAM SODA (2007).Google Scholar
- Charles, D., and Chellapilla, K. Bloomier Filters: A Second Look. In Proc. of European Symposium on Algorithms (2008).Google Scholar
Digital Library
- Charles, D., and Chellapilla, K. Bloomier Filters: A Second Look. In Proc. of ESA (2008).Google Scholar
Digital Library
- Chazelle, B., Kilian, J., Rubinfeld, R., and Tal, A. The Bloomier Filter: An Efficient Data Structure for Static Support Lookup Tables. In Proc. of ACM SODA (2004), pp. 30--39.Google Scholar
- Eisenbud, D. E., Yi, C., Contavalli, C., Smith, C., Kononov, R., Mann-Hielscher, E., Cilingiroglu, A., Cheyney, B., Shang, W., and Hosein, J. D. Maglev: A Fast and Reliable Software Network Load Balancer. In Proc. of USENIX NSDI (2016).Google Scholar
Digital Library
- Erlingsson, U., Manasse, M., and McSherry, F. A cool and practical alternative to traditional hash tables. In Proc. 7th Workshop on Distributed Data and Structures (WDAS'06) (2006).Google Scholar
- Esposito, E., Graf, T. M., and Vigna, S. Recsplit: Minimal perfect hashing via recursive splitting. Tech. rep., 2019.Google Scholar
- Fan, B., Andersen, D., and Kaminsky, M. MemC3: Compact and Concurrent MemCache with Dumber Caching and Smarter Hashing. In Proc. of USENIX NSDI (2013).Google Scholar
- Fan, B., Andersen, D. G., Kaminsky, M., and Mitzenmacher, M. D. Cuckoo filter: Practically better than bloom. In Proceedings of the 10th ACM International on Conference on emerging Networking Experiments and Technologies (2014), ACM.Google Scholar
Digital Library
- Fan, B., Zhou, D., Lim, H., Kaminsky, M., and Andersen, D. G. When cycles are cheap, some tables can be huge. In Proc. of USENIX HotOS (2013).Google Scholar
- Fan, L., Cao, P., Almeida, J., and Broder, A. Z. Summary Cache: A Scalable Wide-Area Web Cache Sharing Protocol. IEEE/ACM Transactions on Networking (2000).Google Scholar
- Fernholz, D., and Ramachandran, V. The k-orientability Thresholds for $G_n,p$. In Proc. of ACM/SIAM SODA (2007).Google Scholar
- Fountoulakis, N., Khosla, M., and Panagiotou, K. The multiple-orientability thresholds for random hypergraphs. In Proc. of ACM/SIAM SODA (2011).Google Scholar
Cross Ref
- Gao, P., and Wormald, N. C. Load balancing and orientability thresholds for random hypergraphs. In Proc. of ACM STOC (2010).Google Scholar
Digital Library
- Genuzio, M., Ottaviano, G., and Vigna, S. Fast Scalable Construction of (Minimal Perfect Hash) Functions. In Proceedings of the International Symposium on Experimental Algorithms (2016).Google Scholar
Digital Library
- Greenberg, A., Hamilton, J. R., Jain, N., Kandula, S., Kim, C., Lahiri, P., Maltz, D. A., Patel, P., and Sengupta, S. VL2: a scalable and flexible data center network. In Proceedings of ACM SIGCOMM (2009).Google Scholar
Digital Library
- Jain, S., Chen, Y., Jain, S., and Zhang, Z.-L. VIRO: A Scalable, Robust and Name-space Independent Virtual Id ROuting for Future Networks. In Proc. of IEEE INFOCOM (2011).Google Scholar
- Kim, C., Caesar, M., and Rexford, J. Floodless in SEATTLE: A Scalable Ethernet Architecture for Large Enterprises. In Proc. of Sigcomm (2008).Google Scholar
Digital Library
- Kirsch, A., and Mitzenmacher, M. Using a queue to de-amortize cuckoo hashing in hardware. In Proceedings of the Forty-Fifth Annual Allerton Conference on Communication, Control, and Computing (2007), vol. 75.Google Scholar
- Kirsch, A., Mitzenmacher, M., and Wieder, U. More robust hashing: Cuckoo hashing with a stash. SIAM Journal on Computing (2009).Google Scholar
- Larisch, J., Choffnes, D., Levin, D., Maggs, B. M., Mislove, A., and Wilson, C. CRLite: A Scalable System for Pushing All TLS Revocations to All Browsers. In Proc. of IEEE S&P (2017).Google Scholar
Cross Ref
- Lelarge, M. A new approach to the orientation of random hypergraphs.. In Proc. of ACM-SIAM SODA (2012).Google Scholar
Cross Ref
- Li, X., Andersen, D., Kaminsky, M., and Freedman, M. J. Algorithmic improvements for fast concurrent cuckoo hashing. In Proc. of ACM EuroSys (2014).Google Scholar
Digital Library
- Lim, H., Fan, B., Andersen, D. G., and Kaminsky, M. SILT: A Memory-Efficient, High-Performance Key-Value Store. In Proc. of ACM SOSP (2011).Google Scholar
Digital Library
- Maggs, B. M., and Sitaraman, R. K. Algorithmic Nuggets in Content Delivery. ACM SIGCOMM Computer Communication Review (2015).Google Scholar
- Majewski, B. S., Wormald, N. C., Havas, G., and Czech, Z. J. A Family of Perfect Hashing Methods. The Computer Journal (1996).Google Scholar
- Mao, R., Zeng, H., Kim, C., Lee, J., and Yu, M. SilkRoad: Making Stateful Layer-4 Load Balancing Fast and Cheap Using Switching ASICs. In Proc. of ACM SIGCOMM (2017).Google Scholar
Digital Library
- Martn Dietzfelbinger and Christoph Weidling . Balanced allocation and dictionaries with tightly packed constant size bins. Theoretical Computer Science (2007).Google Scholar
- McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G., Peterson, L., Rexford, J., Shenker, S., and Turner, J. Openflow: Enabling innovation in campus networks. SIGCOMM Comput. Commun. Rev. (2008).Google Scholar
- Pagh, R., and Rodler, F. F. Cuckoo hashing. Journal of Algorithms (2004).Google Scholar
- Parekh, A. K., and Gallager, R. G. A generalized processor sharing approach to flow control in integrated services networks: the single-node case. IEEE/ACM Transactions on Networking 1, 3 (1993), 344--357.Google Scholar
Digital Library
- Patel, P., Bansal, D., Yuan, L., Murthy, A., Greenberg, A., Maltz, D. A., Kern, R., Kumar, H., Zikos, M., Wu, H., Kim, C., and Karri, N. Ananta: Cloud scale load balancing.Google Scholar
- Pontarelli, S., Reviriego, P., and Mitzenmacher, M. Emoma: Exact match in one memory access. IEEE Transactions on Knowledge and Data Engineering (2017).Google Scholar
- Qian, C., and Lam, S. ROME: Routing On Metropolitan-scale Ethernet. In Proceedings of IEEE ICNP (2012).Google Scholar
Digital Library
- Raab, M., and Steger, A. Balls into Bins -- A Simple and Tight Analysis. In Lecture Notes in Computer Science (1998).Google Scholar
- Raychaudhuri, D., Nagaraja, K., and Venkataramani, A. MobilityFirst: A Robust and Trustworthy MobilityCentric Architecture for the Future Internet. Mobile Computer Communication Review (2012).Google Scholar
- Schlinker, B., et al. Engineering Egress with Edge Fabric: Steering Oceans of Content to the World. In Proc. of ACM SIGCOMM (2017).Google Scholar
Digital Library
- Shi, S., Qian, C., and Wang, M. Re-designing Compact-structure based Forwarding for Programmable Networks. In Proc. of IEEE ICNP (2019).Google Scholar
Cross Ref
- Shi, W., Cao, J., Zhang, Q., Li, Y., and Xu, L. Edge computing: Vision and challenges. IEEE Internet of Things Journal 3, 5 (2016).Google Scholar
- Wang, M., et al. Collaborative Validation of Public-Key Certificates for IoT by Distributed Caching. In Proc. of IEEE INFOCOM (2019).Google Scholar
Cross Ref
- Wang, M., Zhou, M., Shi, S., and Qian, C. Vacuum filters: more space-efficient and faster replacement for bloom and cuckoo filters. Proceedings of the VLDB Endowment (2019).Google Scholar
Digital Library
- Wang, M., Zhou, M., Shi, S., and Qian, C. Vacuum Filters: More Space-Efficient and Faster Replacement for Bloom and Cuckoo Filters. In Proceedings of VLDB (2020).Google Scholar
- Weil, S. A., Brandt, S. A., Miller, E. L., Long, D. D. E., and Maltzahn, C. Ceph: A scalable, high-performance distributed file system. In Proc. of USENIX OSDI (2006).Google Scholar
Digital Library
- Wieder, U. Hashing, Load Balancing and Multiple Choice. Now Publishers, 2017.Google Scholar
- Yang, T., Yang, D., Jiang, J., Gao, S., Cui, B., Shi, L., and Li, X. Coloring Embedder: a Memory Efficient Data Structure for Answering Multi-set Query. In Proc. of IEEE ICDE (2019).Google Scholar
- Yap, K.-K., et al. Taking the Edge off with Espresso: Scale, Reliability and Programmability for Global Internet Peering. In Proc. of ACM SIGCOMM (2017).Google Scholar
Digital Library
- Yu, M., Fabrikant, A., and Rexford, J. BUFFALO: Bloom filter forwarding architecture for large organizations. In Proc. of ACM CoNEXT (2009).Google Scholar
Digital Library
- Yu, Y., Belazzougui, D., Qian, C., and Zhang, Q. Memory-efficient and Ultra-fast Network Lookup and Forwarding using Othello Hashing. IEEE/ACM Transactions on Networking (2018).Google Scholar
- Yu, Y., Li, X., and Qian, C. SDLB: A Scalable and Dynamic Software Load Balancer for Fog and Mobile Edge Computing. In Proc. of ACM SIGCOMM Workshop on Mobile Edge Computing (MECCOM) (2017).Google Scholar
Digital Library
- Zhou, D., Fan, B., Lim, H., Andersen, D. G., Kaminsky, M., Mitzenmacher, M., Wang, R., and Singh, A. Scaling up clustered network appliances with scalebricks. In SIGCOMM (2015).Google Scholar
- Zhou, D., Fan, B., Lim, H., Kaminsky, M., and Andersen, D. G. Scalable, High Performance Ethernet Forwarding with CuckooSwitch. In Proc. of ACM CoNEXT (2013).Google Scholar
Digital Library
Index Terms
Ludo Hashing: Compact, Fast, and Dynamic Key-value Lookups for Practical Network Systems
Recommendations
Ludo Hashing: Compact, Fast, and Dynamic Key-value Lookups for Practical Network Systems
SIGMETRICS '20: Abstracts of the 2020 SIGMETRICS/Performance Joint International Conference on Measurement and Modeling of Computer SystemsKey-value lookup engines running in fast memory are crucial components of many networked and distributed systems such as packet forwarding, virtual network functions, content distribution networks, distributed storage, and cloud/edge computing. These ...
Ludo Hashing: Compact, Fast, and Dynamic Key-value Lookups for Practical Network Systems
Ludo Hashing is a key-value lookup design for networked and distributed systems such as packet forwarding and distributed storage. Ludo costs the least space (3.76 + 1.05l bits per key-value item for l -bit values) among known compact lookup solutions ...
Smash: Flexible, Fast, and Resource-efficient Placement and Lookup of Distributed Storage
SIGMETRICS '23Smash is a new placement and lookup method for distributed storage systems. It achieves full placement flexibility and low DRAM cost to store ID-to-location mappings, two desired features that could not be achieved simultaneously by any prior method.






Comments