[論文レビュー] Datacenter RPCs can be General and Fast
eRPCは、損失を含むEthernetを含む一般用途のRPCライブラリで、ネットワーク専用ハードウェアなしに commodity datacenter networks で専門システムと同等の性能を発揮します。
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 running 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.
研究の動機と目的
- 一般用途のRPCが標準的なデータセンター網で最先端の性能を達成できることを示す。
- 高い小さなメッセージのスループット、大容量メッセージの帯域、そしてスケーラビリティを実現する設計原則を明らかにする。
- lossy Ethernet上でlossless fabricsなしで効率的に動作することをeRPCが示す。
- コアRaftの変更なしでRaftとMasstreeをeRPCへ移植し、実用性を証明する。
提案手法
- 一般的なケース(小さなメッセージ、輻輳のないネットワーク、短いハンドラ)に最適化された高性能RPCフレームワークを設計する。
- 単一BDPのフロー制御を用いてスイッチバッファのドロップを防ぎ、コアあたり一定のNICメモリフットプリントでスケーラビリティを達成する。
- ゼロコピー対応のメッセージバッファ(msgbuf)レイアウトと、まれな再送や障害時の制御フラッシュを伴うサインなし伝送を実装する。
- エンドツーエンドのフロー制御とスケーラブルなセッション管理を可能にする、クライアント主導のワイヤプロトコルとセッションクレジットをサポートする。
- lossy EthernetやInfiniBandを含む複数のNICとネットワークタイプで評価し、専門システムと比較する。
実験結果
リサーチクエスチョン
- RQ1一般用途のRPCライブラリが、 commodityデータセンタネットワーク上で専門システムと同等の性能を達成できるか。
- RQ2 lossless fabricsを用いずに、小さなRPCの高いメッセージレートと大容量メッセージの高帯域を実現する設計原理は何か。
- RQ3 NICとスイッチの制約を考慮したとき、ノード数とCPUコア数が増えるにつれてこのアプローチはどれだけスケーラブルか。
- RQ4コアソースの変更なしで、eRPCをRaftやMasstreeなどの既存の商用レベルのシステムと統合できるか。
主な発見
- 1つのコアで1秒あたり最大1,000万件の小さなRPCを処理できる。
- 1つのコアで75 Gbpsの大容量メッセージを送信できる。
- マイクロベンチマークの中央値RPCレイテンシは2.3マイクロ秒。
- lossy Ethernet上の3-way Raftレプリケーションレイテンシは5.5マイクロ秒。
- eRPCはlossless fabricsなしで高スループットと低レイテンシを達成し、コアRaftソースの変更も行わない。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。