[論文レビュー] Admission Control with Response Time Objectives for Low-latency Online Data Systems
この論文では、キュー待機時間と処理時間に基づくリアルタイムのパーセンタイル応答時間推定値を用いて、各クエリを受容するか拒否するかを決定する、低遅延オンラインデータシステム向けの低オーバーヘッドなアドミッション制御ポリシー「Bouncer」を提案する。このポリシーは、受容されたクエリがSLOを満たすか、それらに近づくことを保証し、クエリタイプごとのSLOをサポートし、早期拒否を可能にし、スターヴェーション回避戦略を含む。シミュレーションおよびグラフデータベースでのプロダクション評価を通じて、最小限のSLO違反と低オーバーヘッドで高いシステム利用度を達成した。
To provide quick responses to users, Internet companies rely on online data systems able to answer queries in milliseconds. These systems employ complementary overload management techniques to ensure they provide a continued, acceptable service through-out traffic surges, where 'acceptable' partly means that serviced queries meet or track closely their response time objectives. Thus, in this paper we present Bouncer, an admission control policy aimed to keep admitted queries under or near their service level objectives (SLOs) on percentile response times. It computes inexpensive estimates of percentile response times for every incoming query and compares the estimates against the objective values to decide whether to accept or reject the query. Bouncer allows assigning separate SLOs to different classes of queries in the workload, implements early rejections to let clients react promptly and to help data systems avoid doing useless work, and complements other load shedding policies that guard systems from exceeding their capacity. Moreover, we propose two starvation avoidance strategies that supplement Bouncer's basic formulation and prevent query types from receiving no service (starving). We evaluate Bouncer and its starvation-avoiding variants against other policies in simulation and on a production-grade in-memory distributed graph database. Our results show that Bouncer and its variants allow admitted queries to meet or stay close to the SLOs when the other policies do not. They also report fewer overall rejections, a small overhead, and with the given latency SLOs, they let the system reach high utilization. In addition, we observe that the proposed strategies can stop query starvation, but at the expense of a modest increase in overall rejections and causing SLO violations for serviced requests.
研究の動機と目的
- トラフィックの急増下でも、受容されたクエリがパーセンタイルベースの応答時間SLOを満たすように保つ、低遅延オンラインデータシステムを維持するアドミッション制御ポリシーの設計。
- 不要な作業を減らし、過負荷時にクライアントが迅速にフォールバックできるようにするため、早期拒否を可能にする。
- 遅延特性が異なる多様なワークロードに対応するため、クエリタイプごとのSLOをサポートする。
- 重い負荷下で特定のクエリタイプが系統的にサービスを拒否されないよう、専用のスターヴェーション回避戦略を通じて、システム的拒否(スターヴェーション)を防止する。
- プロダクション環境におけるミリ秒スケールのリクエスト処理に適した、低計算オーバーヘッドを達成する。
提案手法
- Bouncerは、最近のキュー待機時間と処理時間の簡易近似値を用いて、各受信クエリのパーセンタイル応答時間を推定する。
- これらの推定値を、目標とするSLO(例:p90、p99)と比較して、リアルタイムのアドミッション意思決定(受容または拒否)を実施する。
- 各クエリタイプの処理時間ヒストグラムを、重複しないスライディングウインドウで更新することで、遅延特性を追跡する。
- 2つのスターヴェーション回避戦略(受容許容度と、弱いクエリタイプを支援する戦略)を実装し、サービスを受けにくいクエリタイプが適切に処理されるよう、動的にアドミッション閾値を調整する。
- ロードバランシングやリソーススケジューリングなどの他の過負荷管理技術と併用可能である。
- ブラックボックスとして動作し、低レベルのシステム知識やモデル再トレーニングを必要とせず、動的ワークロードを有するプロダクションシステムに適している。
実験結果
リサーチクエスチョン
- RQ1複雑なモデルや高オーバーヘッドに依存せずに、高い変動するトラフィック負荷下でもパーセンタイルベースのSLOを維持できるアドミッション制御ポリシーは存在するか?
- RQ2Bouncerは、他のポリシーと比較して、受容されたクエリがSLOに近づくように保証しながら、全体のクエリ拒否数をどれほど効果的に減らせるか?
- RQ3Bouncerのスターヴェーション回避メカニズムは、特定のクエリタイプが系統的にサービスを拒否されないよう防止できるか?ただし、SLO違反の増加は最小限に抑えるか?
- RQ4ミリ秒スケールのワークロードにおける、リアルタイムでリクエストごとのアドミッション意思決定にBouncerが与える性能オーバーヘッドはどの程度か?
- RQ5シミュレーションおよびプロダクションレベルのシステムで評価した場合、Bouncerは利用度とSLO準拠性の面でどの程度スケーラブルか?
主な発見
- Bouncerおよびそのスターヴェーション回避バリエーションは、他のポリシーが失敗する状況でも、受容されたクエリがSLOを満たすか、それらに近づくことを可能にする。
- ベースラインポリシーと比較して、特に重い負荷下で、全体の拒否数を減らしながら高い利用度を達成する。
- Bouncerは最小限のオーバーヘッドを伴い、ミリ秒スケールのシステムにおけるリアルタイムでリクエストごとのアドミッション意思決定に適している。
- スターヴェーション回避戦略は、クエリタイプが系統的にサービスを拒否されないよう効果的に防止したが、一部のリクエストでSLO違反がわずかに増加した。
- スターヴェーション回避バリエーションにおけるSLO違反件数は実際の運用で許容可能であると判断されたことから、公平性と遅延準拠性の間の妥当なトレードオフが実現可能であると考えられる。
- LinkedInのLIquidグラフデータベースでの評価により、Bouncerはプロダクションに近い環境でも有効であることが確認され、一貫したSLO準拠性と低運用コストを達成した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。