Table of Contents
Fetching ...

Cora: Accelerating Stateful Network Applications with SmartNICs

Shaoke Xi, Jiaqi Gao, Mengqi Liu, Jiamin Cao, Fuliang Li, Kai Bu, Kui Ren, Minlan Yu, Dennis Cai, Ennan Zhai

TL;DR

Cora is a compiler and runtime that offloads stateful network applications to SmartNIC-accelerated hosts and introduces an accurate performance model for each SmartNIC and employs an efficient compiling algorithm to search the offloading plan.

Abstract

With the growing performance requirements on networked applications, there is a new trend of offloading stateful network applications to SmartNICs to improve performance and reduce the total cost of ownership. However, offloading stateful network applications is non-trivial due to state operation complexity, state resource consumption, and the complicated relationship between traffic and state. Naively partitioning the program by state or traffic can result in a suboptimal partition plan with higher CPU usage or even packet drops. In this paper, we propose Cora, a compiler and runtime that offloads stateful network applications to SmartNIC-accelerated hosts. Cora compiler introduces an accurate performance model for each SmartNIC and employs an efficient compiling algorithm to search the offloading plan. Cora runtime can monitor traffic dynamics and adapt to minimize CPU usage. Cora is built atop Netronome Agilio and BlueField 2 SmartNICs. Our evaluation shows that for the same throughput target, Cora can propose partition plans saving up to 94.0% CPU cores, 1.9 times more than baseline solutions. Under the same resource constraint, Cora can accelerate network functions by 44.9%-82.3%. Cora runtime can adapt to traffic changes and keep CPU usage low.

Cora: Accelerating Stateful Network Applications with SmartNICs

TL;DR

Cora is a compiler and runtime that offloads stateful network applications to SmartNIC-accelerated hosts and introduces an accurate performance model for each SmartNIC and employs an efficient compiling algorithm to search the offloading plan.

Abstract

With the growing performance requirements on networked applications, there is a new trend of offloading stateful network applications to SmartNICs to improve performance and reduce the total cost of ownership. However, offloading stateful network applications is non-trivial due to state operation complexity, state resource consumption, and the complicated relationship between traffic and state. Naively partitioning the program by state or traffic can result in a suboptimal partition plan with higher CPU usage or even packet drops. In this paper, we propose Cora, a compiler and runtime that offloads stateful network applications to SmartNIC-accelerated hosts. Cora compiler introduces an accurate performance model for each SmartNIC and employs an efficient compiling algorithm to search the offloading plan. Cora runtime can monitor traffic dynamics and adapt to minimize CPU usage. Cora is built atop Netronome Agilio and BlueField 2 SmartNICs. Our evaluation shows that for the same throughput target, Cora can propose partition plans saving up to 94.0% CPU cores, 1.9 times more than baseline solutions. Under the same resource constraint, Cora can accelerate network functions by 44.9%-82.3%. Cora runtime can adapt to traffic changes and keep CPU usage low.

Paper Structure

This paper contains 36 sections, 4 equations, 30 figures, 4 tables, 1 algorithm.

Figures (30)

  • Figure 1: An example application with an HTTP counter and a layer-4 load balancer for non-HTTP traffic, which periodically reports DIP load to the logger.
  • Figure 2: Possible partition plan adjustments on Netronome and BlueField 2 SmartNICs.
  • Figure 3: Cora's architecture and workflow overview.
  • Figure 4: The P4 program of the load balancer
  • Figure 5: The dependency graph of the load balancer. Branch conditions are in orange. Solid edges represent data dependency and dashed ones represent control dependency. The bottom-left subgraph denotes extracted state dependencies.
  • ...and 25 more figures