[論文レビュー] Archipelago: A Scalable Low-Latency Serverless Platform
Archipelagoは、スケーラブルで低レイテンシのサーバesslessプラットフォームであり、クラスタをセミグローバルスケジューラー(SGS)が管理するワーカープールに分割し、レイテンシに配慮したスケジューリングとプロアクティブなサンドボックス割り当てを採用し、サンドボックスに配慮したロードバランシングを実施することでリクエストをルーティングする。99%のリクエストに対して300ms未塔のテールレイテンシを達成し、最先端のプラットフォームと比較して最大36倍までレイテンシを低減する。
The increased use of micro-services to build web applications has spurred the rapid growth of Function-as-a-Service (FaaS) or serverless computing platforms. While FaaS simplifies provisioning and scaling for application developers, it introduces new challenges in resource management that need to be handled by the cloud provider. Our analysis of popular serverless workloads indicates that schedulers need to handle functions that are very short-lived, have unpredictable arrival patterns, and require expensive setup of sandboxes. The challenge of running a large number of such functions in a multi-tenant cluster makes existing scheduling frameworks unsuitable. We present Archipelago, a platform that enables low latency request execution in a multi-tenant serverless setting. Archipelago views each application as a DAG of functions, and every DAG in associated with a latency deadline. Archipelago achieves its per-DAG request latency goals by: (1) partitioning a given cluster into a number of smaller worker pools, and associating each pool with a semi-global scheduler (SGS), (2) using a latency-aware scheduler within each SGS along with proactive sandbox allocation to reduce overheads, and (3) using a load balancing layer to route requests for different DAGs to the appropriate SGS, and automatically scale the number of SGSs per DAG. Our testbed results show that Archipelago meets the latency deadline for more than 99% of realistic application request workloads, and reduces tail latencies by up to 36X compared to state-of-the-art serverless platforms.
研究の動機と目的
- マルチテナントクラスタにおける短時間で終わる、予測不能でサンドボックス集約的なサーバessless関数の低レイテンシかつ高スループット実行を実現すること。
- 動的ワークロード下でもDAGベースのサーバesslessアプリケーションのエンドツーエンドのリクエストデッドラインを満たすこと。
- スケーラブルで分散型のスケジューリングを通じて、大規模なサーバessless環境におけるスケジューリングのオーバーヘッドとコールドスタートを低減すること。
- ワークロードの需要とレイテンシ要件に基づいて、スケジューラーの自動的かつサンドボックスに配慮したスケーリングを可能にすること。
提案手法
- Archipelagoはクラスタを複数のワーカープールに分割し、それぞれをセミグローバルスケジューラー(SGS)が管理することで、スケジューリングのオーバーヘッドを低減し、スケーラビリティを向上させる。
- 各SGSはレイテンシに配慮したスケジューリングアルゴリズムを用い、各DAGリクエストの「スラック」(残り時間)を計算し、最短残り実行時間優先(SRTF)の変種を適用して、高優先度でスラックが小さいリクエストを優先する。
- 各SGS内でプロアクティブなサンドボックス割り当てを実施し、DAGリクエストの発生レートに応じて事前にソフトステートのサンドボックスを割り当てることで、コールドスタートとセットアップのオーバーヘッドを最小限に抑える。
- サンドボックスに配慮したロードバランサは、利用可能なサンドボックスとワークロードの分布に基づき、インcomingリクエストを適切なSGSにルーティングし、DAGごとにSGSインスタンスを動的にスケーリング可能にする。
- システムはソフトステートのサンドボックスを用い、メモリのみを消費し、正しくない状態にしても破壊されないため、リソースの再利用が効率的に行える。
- プラットフォームは、異なるレイテンシ要件を持つ多様なアプリケーションが共存可能であり、各DAGに対して厳密なデッドライン保証を提供することでマルチテナントをサポートする。
実験結果
リサーチクエスチョン
- RQ1マルチテナントクラスタにおいて、短時間で終わる、非常に動的なワークロードに対して、どのようにして低テールレイテンシを達成できるか?
- RQ2大規模なサーバesslessシステムにおいて、スケジューラーの細粒度とスケジューリングのオーバーヘッドの最適なトレードオフは何か?
- RQ3プロアクティブなサンドボックス割り当ては、サーバessless実行におけるコールドスタートを著しく低減し、エンドツーエンドのレイテンシを改善できるか?
- RQ4分散型スケジューリングアーキテクチャは、DAGベースのワークロードに対して低レイテンシを維持しながら、デッドライン準拠を保証できるか?
- RQ5サンドボックスに配慮したロードバランシングは、自動スケーリングと低レイテンシのリクエストルーティングを実現するために果たす役割は何か?
主な発見
- Archipelagoは、動的でバースト性のあるトラフィックパターン下でも、現実的応用リクエストワークロードの99%以上でエンドツーエンドのレイテンシデッドラインを満たす。
- プラットフォームは、最先端のサーバesslessプラットフォームと比較して、テールレイテンシを最大36倍まで低減し、応答性を著しく向上させる。
- 細粒度のパーティショニング(例:1ワーカー1つのSGSで20個のSGS)は、過剰なコールドスタートとスケーリングのオーバーヘッドにより、テールレイテンシを約4倍に増加させる。
- SGSあたり64台を超えると、スケジューリングのオーバーヘッドが支配的になり、不要なスケーリングとワーカーの非効率的利用が生じ始める。
- プロアクティブなサンドボックス割り当ては、コールドスタートの数を減らし、とくにリクエストの変動が激しい状況下でリクエスト完了時間を改善する。
- サンドボックスに配慮したロードバランサは、DAGごとにSGSインスタンスを効率的かつ自動的にスケーリング可能にし、リクエスト到着レートとサンドボックスの可用性に適応する。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。