Please find below a selection of our interns and the projects they have worked on.
Sebastian Angel, University of Texas at Austin, Host: Hitesh Ballani
End-to-end Performance Isolation through Virtual Datacenters
The aim of this project is to provide end-to-end performance isolation in multi-tenant data centres in the presence of middleboxes like shared storage servers, load balancers, intrusion detection systems, etc. We offer tenants a virtual datacenter with their virtual machines (VMs) connected to “private” virtual middleboxes through ‘private’ virtual links. This ensures tenants get aggregate bandwidth guarantees both for VM-to-VM traffic and for VM-through-middlebox traffic, irrespective of whether the network or the physical middlebox is the bottleneck resource.
To achieve this, we have designed a software-defined architecture comprising two key components- a logically centralised controller and a multi-resource rate limiter. We use a virtual currency as a common performance metric. At the controller, we have developed a mechanism for dynamically estimating the capacity of a middlebox (our current focus is on storage servers) and adapted existing multi-resource allocation algorithms to work in the presence of distributed middleboxes. At the data plane, our multi-resource rate limiter ensures performance isolation irrespective of the bottleneck resource. We plan to show this design can ensure end-to-end performance guarantees in shared data centres. The internship let to the following OSDI’14 paper which Sebastian presented at the conference: End-to-end Performance Isolation through Virtual Datacenters.
Stanko Novakovic, École Polytechnique Fédérale de Lausanne, Host: Aleksandar Dragojevic
A Transactional System for Modern Networks
During his internship, Stanko built a new distributed transactional engine for FaRM, based on multi-version concurrency control (MVCC). MVCC maintains multiple versions of each object to make the validation of the read set unnecessary and improve performance of read-only transactions by up to two times. It also makes it possible to use snapshot isolation for transactions instead of serializability, which weakens guarantees but improves performance of read-write transactions. The main issue with implementing MVCC is to obtain globally consistent timestamps across servers without introducing scalability bottlenecks or significantly increasing latency. The modern cluster networks make this possible because of their low latency and high throughput. The proposed solution dictates a single server to generate commit timestamps, and batches requests to it. In addition, transactions estimate their read timestamps instead of fetching them from the server, which further alleviates the scalability bottleneck of relying on a single timestamp server. Our measurements show that the system can scale up to several hundred machines with negligible increase in latency.
Matthew Grosvenor, University of Cambridge, Host: Christos Gkantsidis
SWEDEN: Software Defined Edges
Software Defined Networking (SDN) has recently gained a lot of popularity. However, current SDNs focus on simple management tasks (namely routing and reachability). SWEDEN proposes a software-defined edge architecture for enforcing management policies in closed environments like datacenters. Unlike SDNs, SWEDEN leverages the end-hosts to capture richer context about the network flows, and to enforce the policies. Moreover, the end-hosts typically can enforce more complicated/expensive policies than network switches. Sweden exposes a programmable match-action API to the network administrator and decomposes user program policies to program fragments that (a) require global visibility and hence run in the centralized controller, (b) need to be responsive and hence run on end-hosts, and (c) are in the data-path and hence run on programmable network interfaces (NICs) in the end-hosts.
Matt focused on demonstrating the feasibility and benefits of programmability in the end-hosts as well as exploring mechanisms to decompose policies subject to the underlying architecture constraints.
Kaveh Razavi, Vrije Universiteit, Host: Paolo Costa
Designing and evaluating a new network stack for rack-scale computers
During the internship, Kaveh designed and implemented Maze, an emulation platform for rack-scale computers. Maze runs on top of RDMA-based clusters and enables emulating arbitrary virtual topologies (e.g., torus, mesh) with configurable link bandwidth. Its stack is fully customizable and it can support different routing and transport protocols. Maze leverages RDMA primitives for communication and adopts a zero-copy-based forwarding and a task-based cooperative scheduling to achieve high performance. In our micro-benchmarks, Maze can sustain a throughput of up to 37 Gbps when using 8KB-packets and a latency of 2.5 us / hop for small packets. Maze is also compatible with the simulation environment used within the group, enabling rerunning the same workloads and cross-validating the results.
Xiaozhou Li, Princeton UniversityHost: Ant Rowstron & Sergey Legthchenko
Synthesizing software stack for rack-scale cold data storage
In this project, we explore new approaches to synthesize the software stack for cost-effective rack-scale HDD-based cold data storage units. To achieve high-density and low-cost, the cold data storage rack is right-provisioned – designed to simply have enough resources (power, cooling, bandwidth etc.) to handle the expected workload. The operating states of the rack is restricted by a complex set of hardware constraints, which requires complex resource management handled by the dedicated software stack. We are building the first tool to auto-generate the storage software stack with given descriptions of right-provisioned hardware. Our tool will capture the constraints and the desired properties, and automatically generate the data layout and IO scheduling schemes to optimize the performance while adhering to all the constraints.
Cole Schlesinger, Princeton University, Host: Hitesh Ballani & Thomas Karagiannis
Quality of Service Abstractions for Software-defined Networks
Software-defined networking (SDN) provides a means of configuring the packet-forwarding behavior of a network from a logically-centralized controller. Expressive, high-level languages have emerged for expressing data-plane configurations, and new tools allow for verifying packet reachability properties in real time. But SDN largely ignores quality of service (QoS) primitives, such as queues, queuing disciplines, and rate limiters, leaving configuration of these elements to be performed out of band in an ad-hoc manner. Not only does this make QoS elements difficult to configure, it also leads to a “try it and see” approach to analysis and verification of QoS properties. We propose a new language for configuring SDNs with quality of service primitives, which comes equipped with a well-defined semantics drawn from the network calculus. Although still early-stage work, we believe this approach will yield decision procedures for verifying QoS properties as well as an equational theory for guiding (proved correct) network refactoring and reconfiguration.