A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from 2020; you can also visit <a rel="external noopener" href="https://arxiv.org/pdf/1806.00680v2.pdf">the original URL</a>. The file type is <code>application/pdf</code>.
Datacenter RPCs can be General and Fast
[article]
<span title="2019-01-15">2019</span>
<i >
arXiv
</i>
<span class="release-stage" >pre-print</span>
It is commonly believed that datacenter networking software must sacrifice generality to attain high performance. The popularity of specialized distributed systems designed specifically for niche technologies such as RDMA, lossless networks, FPGAs, and programmable switches testifies to this belief. In this paper, we show that such specialization is not necessary. eRPC is a new general-purpose remote procedure call (RPC) library that offers performance comparable to specialized systems, while
<span class="external-identifiers">
<a target="_blank" rel="external noopener" href="https://arxiv.org/abs/1806.00680v2">arXiv:1806.00680v2</a>
<a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/ryqqflbh4rgqpf2voguhgdhs6e">fatcat:ryqqflbh4rgqpf2voguhgdhs6e</a>
</span>
more »
... nning on commodity CPUs in traditional datacenter networks based on either lossy Ethernet or lossless fabrics. eRPC performs well in three key metrics: message rate for small messages; bandwidth for large messages; and scalability to a large number of nodes and CPU cores. It handles packet loss, congestion, and background request execution. In microbenchmarks, one CPU core can handle up to 10 million small RPCs per second, or send large messages at 75 Gbps. We port a production-grade implementation of Raft state machine replication to eRPC without modifying the core Raft source code. We achieve 5.5 microseconds of replication latency on lossy Ethernet, which is faster than or comparable to specialized replication systems that use programmable switches, FPGAs, or RDMA.
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20200908232445/https://arxiv.org/pdf/1806.00680v2.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext">
<button class="ui simple right pointing dropdown compact black labeled icon button serp-button">
<i class="icon ia-icon"></i>
Web Archive
[PDF]
<div class="menu fulltext-thumbnail">
<img src="https://blobs.fatcat.wiki/thumbnail/pdf/e3/de/e3dee5cd5f81e3fd6dd2d7c66ec2e60dc5b40547.180px.jpg" alt="fulltext thumbnail" loading="lazy">
</div>
</button>
</a>
<a target="_blank" rel="external noopener" href="https://arxiv.org/abs/1806.00680v2" title="arxiv.org access">
<button class="ui compact blue labeled icon button serp-button">
<i class="file alternate outline icon"></i>
arxiv.org
</button>
</a>