R2p2: Making Rpcs First-Class Datacenter Citizens

PROCEEDINGS OF THE 2019 USENIX ANNUAL TECHNICAL CONFERENCE(2019)

引用 65|浏览62
暂无评分
摘要
Remote Procedure Calls are widely used to connect data-center applications with strict tail-latency service level objectives in the scale of mu s. Existing solutions utilize streaming or datagram-based transport protocols for RPCs that impose overheads and limit the design flexibility. Our work exposes the RPC abstraction to the endpoints and the network, making RPCs first-class datacenter citizens and allowing for innetwork RPC scheduling.We propose R2P2, a UDP-based transport protocol specifically designed for RPCs inside a datacenter. R2P2 exposes pairs of requests and responses and allows efficient and scalable RPC routing by separating the RPC target selection from request and reply streaming. Leveraging R2P2, we implement a novel join-bounded-shortest-queue (JBSQ) RPC load balancing policy, which lowers tail latency by centralizing pending RPCs in the router and ensures that requests are only routed to servers with a bounded number of outstanding requests. The R2P2 router logic can be implemented either in a software middlebox or within a P4 switch ASIC pipeline.Our evaluation, using a range of microbenchmarks, shows that the protocol is suitable for mu s-scale RPCs and that its tail latency outperforms both random selection and classic HTTP reverse proxies. The P4-based implementation of R2P2 on a Tofino ASIC adds less than 1 mu s of latency whereas the software middlebox implementation adds 5 mu s latency and requires only two CPU cores to route RPCs at 10 Gbps linerate. R2P2 improves the tail latency of web index searching on a cluster of 16 workers operating at 50% of capacity by 5.7 x over NGINX. R2P2 improves the throughput of the Redis key-value store on a 4-node cluster with master/slave replication for a tail-latency service-level objective of 200 mu s by more than 4.8x vs. vanilla Redis.
更多
查看译文
关键词
rpcs,citizens,first-class
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要