CMU-CS-19-122 Computer Science Department School of Computer Science, Carnegie Mellon University
Data Structure Engineering for High Dong Zhou Ph.D. Thesis August 2019
From software routers to virtual swiches to the more general concept of Network Function Virtualization (NFV), the applications of softwarebased packet processing have been booming in recent years. Unlike specialized hardware, general-purpose CPUs are not optimized for processing network packets and thus demand software systems to be carefully designed and optimized to meet ever-increasing performance requirements. This thesis strives to address the performance challenges of software packet processing by designing and implementing high performance, memory efficient data structures for each of the applications we examined. We make three contributions. First, based on concurrent cuckoo hashing, we propose a set of algorithmic and architecture-aware optimizations to craft an x86-optimized, high-performance hash table, which we then use to build scalable and resource-efficient software-based Ethernet switches. Second, we propose an extremely compact set separation data structure that omits keys and uses a variant of perfect hashing to store values. This data structure is the backbone of our new architecture for building scalable, clustered network appliances. Third, we propose a new software cache design and a cache eviction algorithm that balances between cache hit rate and lookup latency. Replacing the microflow cache in the Open vSwitch with our cache design improves the throughput by up to 15%. 128 pages
Thesis Committee:
Srinivasan Seshan, Head, Computer Science Department
| |
Return to:
SCS Technical Report Collection This page maintained by [email protected] |