Skip to main content
QUICK REVIEW

[論文レビュー] Size-aware Sharding For Improving Tail Latencies in In-memory Key-value Stores

Diego Didona, Willy Zwaenepoel|arXiv (Cornell University)|Feb 2, 2018
Cloud Computing and Resource Management参考文献 41被引用数 26
ひとこと要約

この論文では、メモリ内キーバリュー・ストアにおけるサイズに配慮したシャーディングを提案し、小規模および大規模リクエストを別々のコアに隔離することで、先頭待ち行列ブロッキングを防ぎ、尾遅延を低減する。Minos は実装されたシステムであり、小規模アイテムに対してはハードウェアディスパッチを用い、コアの割り当てを動的に調整することで、最先端のシステムと比較して 99 パcentile の遅延が同じ条件下で最大 7.4 倍のスループットを達成している。

ABSTRACT

This paper introduces the concept of size-aware sharding to improve tail latencies for in-memory key-value stores, and describes its implementation in the Minos key-value store. Tail latencies are crucial in distributed applications with high fan-out ratios, because overall response time is determined by the slowest response. Size-aware sharding distributes requests for keys to cores according to the size of the item associated with the key. In particular, requests for small and large items are sent to disjoint subsets of cores. Size-aware sharding improves tail latencies by avoiding head-of-line blocking, in which a request for a small item gets queued behind a request for a large item. Alternative size-unaware approaches to sharding, such as keyhash-based sharding, request dispatching and stealing do not avoid head-of-line blocking, and therefore exhibit worse tail latencies. The challenge in implementing size-aware sharding is to maintain high throughput by avoiding the cost of software dispatching and by achieving load balancing between different cores. Minos uses hardware dispatch for all requests for small items, which form the very large majority of all requests. It achieves load balancing by adapting the number of cores handling requests for small and large items to their relative presence in the workload. We compare Minos to three state-of-the-art designs of in-memory KV stores. Compared to its closest competitor, Minos achieves a 99th percentile latency that is up to two orders of magnitude lower. Put differently, for a given value for the 99th percentile latency equal to 10 times the mean service time, Minos achieves a throughput that is up to 7.4 times higher.

研究の動機と目的

  • 可変なアイテムサイズに起因する先頭待ち行列ブロッキングによって引き起こされるメモリ内キーバリュー・ストアにおける高尾遅延の問題に対処すること。
  • 専用ハードウェアを必要とせず、マルチキュー NIC を備えたコンmodity マルチコアシステムに焦点を当て、尾遅延を改善すること。
  • 小規模および大規模リクエストを分離するシャーディング戦略を設計し、小規模リクエストが大規模リクエストによって遅延することを防ぐこと。
  • ソフトウェアディスパッチのオーバーヘッドを最小限に抑え、小規模および大規模リクエストハンドラ間での動的ロードバランシングを可能にすることで、高いスループットと低遅延を達成すること。

提案手法

  • 小規模および大規模リクエストを別々のコアセットに割り当てることで、サイズに配慮したシャーディングを実装し、小規模アイテムに対する先頭待ち行列ブロッキングを完全に排除する。
  • 小規模リクエストをその指定されたコアに直接ディスパッチするためのハードウェアベースのリクエストキューイングを活用し、大多数のリクエストに対してソフトウェアディスパッチを回避する。
  • 軽量な制御ループを用いて、実行時において小規模および大規模アイテムのサイズ閾値を動的に決定する。
  • ワークロードの特性に応じて、小規模および大規模リクエスト処理に割り当てられるコア数を調整することで、負荷バランスを維持する。
  • 既存のマルチキュー NIC 硬貨を活用し、小規模リクエストを特定のコアに直接ハードウェアレベルでディスパッチ可能にする。
  • クライアントプロトコルやデータレイアウトの変更を必要とせず、既存のメモリ内キーバリュー・ストアアーキテクチャに統合できる。

実験結果

リサーチクエスチョン

  • RQ1可変なアイテムサイズを持つメモリ内キーバリュー・ストアにおいて、小規模および大規模リクエストを別々のコアに隔離することで、尾遅延を顕著に低減できるか?
  • RQ2高いソフトウェアディスパッチオーバーヘッドを伴わず、効率的にサイズに配慮したシャーディングを実装できるか?
  • RQ3小規模および大規模リクエストワークロード間のサイズ閾値とコア割り当てを決定する最適な実行時戦略は何か?
  • RQ4尾遅延とスループットの観点から、従来のシャーディング手法(例:キーハッシュベースのシャーディングやワーキングスティーリング)に比べて、サイズに配慮したシャーディングはどの程度優れているか?

主な発見

  • Minos は、最も近い競合製品と比較して、99 パcentile 遅延を最大 2 時間分低減し、1 マイクロ秒未満の尾遅延を達成している。
  • 99 パcentile 遅延を平均サービス時間の 10 倍に保つターゲット条件下で、Minos は次に優れたシステムと比較して最大 7.4 倍のスループットを達成している。
  • 小規模リクエストに対してハードウェアディスパッチを用いることで、ソフトウェアディスパッチのボトルネックが解消され、最小限の遅延オーバーヘッドで高いスループットが実現できる。
  • ワークロード比に基づく動的コア割り当てにより、変動するワークロード下でも負荷バランスが維持され、リソースの未利用や過負荷を防げる。
  • ワーキングスティーリングやキーハッシュベースのシャーディングに比べ、サイズに配慮したシャーディングは、小規模リクエストに対する先頭待ち行列ブロッキングを完全に排除することで優れている。
  • 本アプローチはコンmodity ハードウェアでも有効であり、マルチキュー NIC のみを必要とし、専用アクセラレータや RDMA サポートを必要としない。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。