NotNets: Accelerating Microservices by Bypassing the Network
Peter Alvaro, Matthew Adiletta, Adrian Cockroft, Frank Hady, Ramesh Illikkal, Esteban Ramos, James Tsai, Robert Soulé
TL;DR
Notnets proposes a radical rethink of distributed communication for microservices by bypassing the network and emulating message-passing RPCs through a shared memory pool enabled by CXL 3.0. By constraining the approach to RPC semantics, it avoids full distributed shared memory challenges such as coherence and global fault tolerance, while targeting kernel, TLS, and transport overheads. The authors provide a concrete, single-host prototype and report order-of-magnitude latency improvements, plus additional gains when serialization is bypassed. If scalable to data centers, Notnets could substantially reduce RPC overhead in fine-grained microservices, enabling more efficient and cost-effective deployments.
Abstract
Remote procedure calls are the workhorse of distributed systems. However, as software engineering trends, such as micro-services and serverless computing, push applications towards ever finer-grained decompositions, the overhead of RPC-based communication is becoming too great to bear. In this paper, we argue that point solutions that attempt to optimize one aspect of RPC logic are unlikely to mitigate these ballooning communication costs. Rather, we need a dramatic reappraisal of how we provide communication. Towards this end, we propose to emulate message-passing RPCs by sharing message payloads and metadata on CXL 3.0-backed far memory. We provide initial evidence of feasibility and analyze the expected benefits.
