1 research outputs found
Dynamic Recompilation of Software Network Services with Morpheus
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