Productive Development of Scalable Network Functions with NFork

09/04/2023
by   Lei Yan, et al.
0

Despite decades of research, developing correct and scalable concurrent programs is still challenging. Network functions (NFs) are not an exception. This paper presents NFork, a system that helps NF domain experts to productively develop concurrent NFs by abstracting away concurrency from developers. The key scheme behind NFork's design is to exploit NF characteristics to overcome the limitations of prior work on concurrency programming. Developers write NFs as sequential programs, and during runtime, NFork performs transparent parallelization by processing packets in different cores. Exploiting NF characteristics, NFork leverages transactional memory and develops efficient concurrent data structures to achieve scalability and guarantee the absence of concurrency bugs. Since NFork manages concurrency, it further provides (i) a profiler that reveals the root causes of scalability bottlenecks inherent to the NF's semantics and (ii) actionable recipes for developers to mitigate these root causes by relaxing the NF's semantics. We show that NFs developed with NFork achieve competitive scalability with those in Cisco VPP [16], and NFork's profiler and recipes can effectively aid developers in optimizing NF scalability.

READ FULL TEXT
research
03/30/2021

Synch: A framework for concurrent data-structures and benchmarks

The recent advancements in multicore machines highlight the need to simp...
research
01/26/2023

Concrat: An Automatic C-to-Rust Lock API Translator for Concurrent Programs

Concurrent programs suffer from data races. To prevent data races, progr...
research
04/10/2018

ConPredictor: Concurrency Defect Prediction in Real-World Applications

Concurrent programs are difficult to test due to their inherent non-dete...
research
03/12/2018

Memory Models for C/C++ Programmers

The memory model is the crux of the concurrency semantics of shared-memo...
research
12/20/2019

Formalizing Determinacy of Concurrent Revisions

Concurrent revisions is a concurrency control model designed to guarante...
research
10/31/2022

Low-Latency, High-Throughput Garbage Collection (Extended Version)

Production garbage collectors make substantial compromises in pursuit of...

Please sign up or login with your details

Forgot password? Click here to reset