NAP: Programming Data Planes with Approximate Data Structures
NAP: Programming Data Planes with Approximate Data Structures
复制标题
NAP:使用近似数据结构对数据平面进行编程
DOI:
10.1145/3630047.3630196
复制
发表时间:
2023
期刊:
影响因子:
--
通讯作者:
Walker, David
中科院分区:
文献类型:
--
作者:
Pan, Mengying;Kim, Hyojoon;Rexford, Jennifer;Walker, David
Many applications that run on programmable data planes rely on approximate data structures, due to insufficient in-network memory. However, programming with approximate data structures is challenging because it requires (1) expertise in streaming algorithms to select the data structures that best match an application's requirements, (2) meticulous configuration to minimize approximation error while fitting within the hardware constraints, and (3) proficiency in the low-level P4 language. To address these issues, we propose NAP, a high-level network programming language. The core of NAP is the versatile approximate dictionary abstraction that captures a wide range of compact data structures, while allowing programmers to simply specify the kinds of error an application can tolerate. We demonstrate the language's expressiveness, conciseness, and efficiency through a variety of network applications, each compiling to P4 for the Intel Tofino in less than a second and featuring 25X--50X fewer lines of code compared to the P4 output. We evaluate an approximate stateful firewall written in NAP with real campus traffic, achieving performance consistent with the predicted accuracy.