toplogo
Sign In

マイクロサービスの通信コストを削減するNotNets:ネットワークを迂回する


Core Concepts
マイクロサービス間通信のボトルネックを解消するため、CXLベースの共有メモリを活用してRPCのメッセージ受け渡しを高速化する。
Abstract

本論文では、マイクロサービスベースのアプリケーションにおける通信コストの問題に取り組んでいる。

まず、マイクロサービス間のRPCコールにおける各種オーバーヘッドを分析した。ワークロードによってボトルネックが変わることを示し、個別の最適化では限界があることを指摘している。

そこで、CXLによる共有メモリを活用したNotNetsを提案する。RPCのメッセージ受け渡しを共有メモリ上で行うことで、ネットワーク関連のオーバーヘッドを大幅に削減できる。

具体的には、カーネルスタック、L7ネットワーキング、(反)直列化などの処理を不要にできる。一方で、セキュリティや負荷分散など、新たな課題も生じるため、今後の検討が必要となる。

初期プロトタイプの評価では、RPCレイテンシを1桁改善できることを示している。マイクロサービスの通信コストを大幅に削減できる可能性が示された。

edit_icon

Customize Summary

edit_icon

Rewrite with AI

edit_icon

Generate Citations

translate_icon

Translate Source

visual_icon

Generate MindMap

visit_icon

Visit Source

Stats
単一サーバ上でのRPCレイテンシは、従来のhttp2ベースが平均209μs、p99が1430μsに対し、NotNetsでは平均30.9μs、p99が420μsと大幅に改善された。 さらに、メッセージの(反)直列化を省略したNotNets-では、平均8.29μs、p99が187μsと、さらなる高速化が可能である。
Quotes
"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." "To mitigate these ballooning, communication-related overheads we must focus on RPC, the workhorse of microservices. Unfortunately, we wish to reduce overhead without trading any of the generality that made the architecture attractive, a tradeoff that seems difficult to navigate."

Key Insights Distilled From

by Pete... at arxiv.org 04-11-2024

https://arxiv.org/pdf/2404.06581.pdf
NotNets

Deeper Inquiries

マイクロサービスアーキテクチャにおいて、ポリグロットな環境でどの程度(反)直列化のコストが問題となるのか、さらなる調査が必要である。

マイクロサービスアーキテクチャにおいて、ポリグロットな環境での(反)直列化のコストは重要な課題です。異なる言語やフレームワークで実装されたサービスが連携する場合、データの共有に伴うシリアライゼーションコストが増加します。特に、大規模なメッセージのやり取りや複雑なシリアライゼーションロジックを持つ場合には、コストが顕著になります。したがって、ポリグロットな環境における(反)直列化のコストについてさらなる調査が必要です。異なる言語間でのデータ共有の頻度や規模、シリアライゼーションの複雑さなどを詳細に分析し、最適なアプローチを見つけるための研究が重要です。

共有メモリ上での通信セキュリティをどのように実現するか、新たな課題への取り組みが求められる。

共有メモリ上での通信セキュリティを確保するためには、従来のエンドツーエンドの暗号化アプローチとは異なる新たなメカニズムが必要となります。通常、異なるプロセス間では仮想メモリ空間が分離されており、プロセス間でのデータ転送にはメッセージパッシングが利用されます。しかし、共有メモリを利用する場合、通信するプロセスは既にアドレス空間を共有しているため、データのプライバシーを保護する新しいメカニズムが必要です。つまり、参加しないプロセスが共有メモリ内のアドレスを「名前付け」できないようにする仕組みが必要です。これにより、通信セキュリティを確保し、機密性を維持することが可能となります。共有メモリ上での通信セキュリティに関する新たな課題に取り組むことが重要です。

CXLによる共有メモリプールの活用は、データセンターの記憶階層最適化にもつながる可能性がある。この観点からの検討も興味深い。

CXLによる共有メモリプールの活用は、データセンターの記憶階層最適化に革新をもたらす可能性があります。従来の記憶階層において、ストレージと計算リソースを別々にスケーリングするデータセンターの分離は効率と利用率の向上につながりました。同様に、メモリの分離も同様の効果をもたらす可能性があります。CXLを活用した共有メモリプールは、複数のプロセッサに接続されたリモートメモリへのアクセスを可能にし、DRAMの容量と帯域幅をCPUのスケーリングに合わせて拡張できます。このような技術の進化により、データセンターの記憶階層最適化が実現され、効率的なリソース利用が促進される可能性があります。CXLによる共有メモリプールの活用は、データセンターの未来の発展に向けた興味深い視点を提供しています。
0
star