Dynamic Recompilation of Software Network Services with Morpheus

06/16/2021
by   Sebastiano Miano, et al.
0

State-of-the-art approaches to design, develop and optimize software packet-processing programs are based on static compilation: the compiler's input is a description of the forwarding plane semantics and the output is a binary that can accommodate any control plane configuration or input traffic. In this paper, we demonstrate that tracking control plane actions and packet-level traffic dynamics at run time opens up new opportunities for code specialization. We present Morpheus, a system working alongside static compilers that continuously optimizes the targeted networking code. We introduce a number of new techniques, from static code analysis to adaptive code instrumentation, and we implement a toolbox of domain specific optimizations that are not restricted to a specific data plane framework or programming language. We apply Morpheus to several eBPF and DPDK programs including Katran, Facebook's production-grade load balancer. We compare Morpheus against state-of-the-art optimization frameworks and show that it can bring up to 2x throughput improvement, while halving the 99th percentile latency.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/17/2019

How to Avoid Making a Billion-Dollar Mistake: Type-Safe Data Plane Programming with SafeP4

The P4 programming language offers high-level, declarative abstractions ...
research
02/26/2021

Synthesizing Safe and Efficient Kernel Extensions for Packet Processing

Extended Berkeley Packet Filter (BPF) has emerged as a powerful method t...
research
01/26/2021

A Survey on Data Plane Programming with P4: Fundamentals, Advances, and Applied Research

With traditional networking, users can configure control plane protocols...
research
12/13/2022

Enabling the Reflex Plane with the nanoPU

Many recent papers have demonstrated fast in-network computation using p...
research
03/24/2021

Metronome: adaptive and precise intermittent packet retrieval in DPDK

DPDK (Data Plane Development Kit) is arguably today's most employed fram...
research
08/05/2019

Concury: A Fast and Light-weighted Software Load Balancer

A load balancer (LB) is a vital network function for cloud services to b...
research
04/05/2020

Kollaps: Decentralized and Dynamic Topology Emulation

The performance and behavior of large-scale distributed applications is ...

Please sign up or login with your details

Forgot password? Click here to reset