Project Description

RouterBricks : Exploiting Parallelism to Build General-Purpose Scalable Software Routers
Recent advances in server technology such as a high-speed backbone between processing cores and memory enable high-speed parallel processing. We revisited the problem of scaling software routers and proposed a new software router architecture, RouteBricks, that parallelizes router functionality both across multiple servers and across multiple cores within a single server to exploit parallelism at every opportunity. RouteBricks carefully assigns packets to cores to avoid contention and copying. It routes packets across servers with a topology to maximize throughput while minimizing packet reorderings. A 35Gbps parallel router prototype has been demonstrated with four commodity Intel Nehalem servers. The software router can be linearly scaled through the use of additional servers. The prototype router is fully programmable using the familiar Linux environment and is built entirely from off-the-shelf, general-purpose server hardware. This work received a best paper award at SOSP, a prestigious operating systems conference, and the source code is publicly available and has been actively used in the systems and networking community.

MegaPipe: Scalable OS Network I/O
We proposed MegaPipe, a new API for efficient, scalable network I/O for message-oriented workloads. The design of MegaPipe centers around the abstraction of a channel, a per-core, bidirectional pipe between the kernel and user space, used to exchange both I/O requests and event notifications. On top of the channel abstraction, we introduce three key concepts of MegaPipe: partitioning, lightweight socket (lwsocket), and batching. By embracing a clean-slate design approach, MegaPipe is able to exploit new opportunities for improved performance and ease of programmability. In macrobenchmarks on an 8-core server, MegaPipe improves the performance of a modified version of memcached between 15% and 320%. For a workload based on real-world HTTP traces, MegaPipe boosts the throughput of nginx by 75%.

Data-Centric Networking
The Internet usage has shifted from host-centric to data-centric applications. The Data-Oriented Network Architecture (DONA) is a “clean-slate” design for naming and name resolution of the Internet for data-centric applications. The heart of DONA is a self-certifying name-based anycast primitive, sitting on top of the IP layer, which provides name persistence, authenticity, and reliability. With DONA, applications receive anycast support directly from the Internet, thus eliminating the necessity of specialized content distribution solutions like Akamai. DONA is pioneering work that introduced pub-sub style communication to the core Internet infrastructure for content-centric networking.

[1] RouterBricks: M. Dobrescu, N. Egi, K. Argyraki, B.-G. Chun, K. Fall, G. Iannaccone, A. Knies, M. Manesh, and S. Ratnasamy.RouteBricks: Exploiting parallelism to scale software routers,” In ACM SOSP, 2009.
[2] MegaPipe: S. Han, S. Marshall, B.-G. Chun, and S. Ratnasamy. Megapipe: A new programming interface for scalable network i/o,” In USENIX OSDI, 2012.
[3] Data-Centric Networking: T. Koponen, M. Chawla, B.-G. Chun, A. Ermolinskiy, K. H. Kim, S. Shenker, and I. Stoica. A data- oriented (and beyond) network architecture,” In ACM SIGCOMM, 2007.