|dc.description.abstract||The enormous size and scope of today’s Internet make the deployment of new
network technologies and advanced services difficult. One strategy to address such
ossification is to combine two evolving trends in building network services—overlay
networks and network virtualization. The combination allows multiple overlay networks
providing alternate end-to-end services to co-exist on a shared virtualized
substrate. The building blocks of such a substrate—termed virtualized routers—
utilize programmable multi-processor hardware to provide the flexibility of hosting
diverse services simultaneously, and process packets at high rates.
In this dissertation, we describe the design and implementation of ShaRE,
the first run-time system for such high-performance, multi-service virtualized routers.
ShaRE provides two functionalities. First, ShaRE multiplexes hardware resources
among multiple services while preventing damaging interactions and instabilities.
Second, ShaRE exposes a packet-processing-oriented resource abstraction layer and
includes a set of adaptation mechanisms to simplify the programmability and portability
of high-performance network services.
Virtualized routers exhibit several unique characteristics that make the above
functionalities challenging. First, network services are required to process packets
within a small delay from their arrivals. Second, at these time-scales, network traffic
is bursty and often hard-to-predict. Third, the overhead of reallocating processors
from one service to another in current router hardware is larger than the packet processing
time. Finally, to achieve high performance, router hardware (unlike conventional
systems) includes a complex array of resources such as multi-core processors,
fixed-function co-processors, and inter-processor communication mechanisms.
In designing ShaRE, we make three contributions. First, we design Everest,
an agile and wary scheduler for allocating processors to services in high-performance
routers. Everest’s agility and wariness help cope with stringent delay tolerance,
and difficult-to-predict and significant fluctuations in packet arrival rates, and large
context-switch overheads. Second, we demonstrate that the efficacy of a scheduler
depends on various system, workload and service characteristics, and design variants
of Everest that perform the best under different characteristics. Finally, to minimize
the overhead of replicating services or check-pointing and migrating services from
one processor to another, we identify and exploit several unique characteristics of
network services. We instantiate our contributions on Intel’s IXP2400 programmable