Fast and Flexible Data-Center Networks
Modern datacenter networks need to be both fast (high throughput and low latency) and flexible (highly programmable). With the demise of Moore's Law and the rise of Big Data, end-host systems alone are struggling to scale and meet the performance demands of current and emerging workloads, like group communication and machine learning. Switches in the network can make these workloads run orders of magnitude faster, by going beyond traditional packet forwarding to perform tasks such as in-network reduce and multicast. The challenge, however, is how to enhance network flexibility without sacrificing performance.
Exposing the right domain-specific abstractions and hardware primitives for networks can enable more flexibility with negligible (or zero) loss in performance. In this talk, I will present systems and approaches I developed, like Pisces and Elmo, that let network programmers modify switch behavior more flexibly using a high-level P4 language (e.g., to encode state inside packets) and new hardware primitives (i.e., to read, infer, and act on the encoded state), without compromising speed. Together, these features allow network operators to scale datacenter workloads, like group communication, to millions of groups, with ease while operating at hardware speed.