R2P2: Making RPCs first-class datacenter citizens
Talkat USENIX ATC '19 · on Friday, 2019-07-12· at 09:15· USENIX ATC Track II: Grand Ballroom VII–IX·
summary
R2P2 is a UDP-based transport that exposes request–response pairs (identified by src IP/port and client-set request ID) so routers can choose targets and let servers stream replies directly. A software middlebox (two CPU cores) routes at 10Gbps with ~5µs overhead; a P4/Tofino implementation adds <1µs. The paper builds an in-network load balancer and a join-bounded-shortest-queue (JBSQ) policy with per-server bounded queues (size ~2) and shows R2P2 improves web index tail latency 5.7× over NGINX (16 workers at 50% load) and boosts Redis throughput >4.8× for a 200µs tail SLO.
AI-written summary · about
chapters (12)
- 0:00Start
- 0:27Datacenter Communication
- 1:16Paradigm Mismatch
- 3:06R2P2 - Request Response Pair Protocol
- 4:04Client-Server Decoupling
- 4:44R2P2 Packet Exchange
- 6:25Vanilla Request-Level LoadBalancing
- 8:22Request-level Load-Balancing
- 11:28JBSQ Evaluation
- 13:19In-network Policy Enforcement
- 14:13Redis
- 16:15Conclusion
related talks
16mRingLeader: Efficiently Offloading Intra-Server Orchestration to NICs
05mJump-starting back-office connections
34mHyperRouter: Lessons Learnt from Building an L4 Load...
47mMonolith to Microserv. at 20M+ requests per second: Latency and Scale Challenges
14mODRP: On-Demand Remote Paging with Programmable RDMA
13mRakaia: Scalable In-Kernel Scheduling for TCP-Based RPCs
42mRSocket - Future Reactive Application Protocol
16mTowards Optimal Rack-scale μs-level CPU Scheduling through In-Network Workload...
