Abstract
Operating systems provide a wide range of services, which are crucial for the increasingly high reliability and scalability demands of modern applications. Providing both reliability and scalability at the same time is hard. Commodity OS architectures simply lack the design abstractions to do so for demanding core OS services such as the network stack. For reliability and scalability guarantees, they rely almost exclusively on ensuring a high-quality implementation, rather than a reliable and scalable design. This results in complex error recovery paths and hard-to-maintain synchronization code. We demonstrate that a simple and structured design that strictly adheres to two principles, isolation and par- titioning, can yield reliable and scalable network stacks. We present NEaT, a system which partitions the stack across isolated process replicas handling independent requests. Our design principles intelligently partition the state to minimize the impact of failures (offering strong recovery guarantees) and to scale comparably to Linux without exposing the implementation to common pitfalls such as synchronization errors, poor locality, and false sharing.
Original language | English |
---|---|
Title of host publication | CoNEXT 2016 - Proceedings of the 12th International Conference on Emerging Networking EXperiments and Technologies |
Publisher | Association for Computing Machinery, Inc |
Pages | 359-373 |
Number of pages | 15 |
ISBN (Electronic) | 9781450342926 |
DOIs | |
Publication status | Published - 6 Dec 2016 |
Event | 12th ACM Conference on Emerging Networking Experiments and Technologies, ACM CoNEXT 2016 - Irvine, United States Duration: 12 Dec 2016 → 15 Dec 2016 |
Conference
Conference | 12th ACM Conference on Emerging Networking Experiments and Technologies, ACM CoNEXT 2016 |
---|---|
Country/Territory | United States |
City | Irvine |
Period | 12/12/16 → 15/12/16 |