https://joisino.hatenablog.com/ に影響を受けて出来るだけ毎日論文を読んでみることにした。 継続するためにも、書いた論文メモの抜粋と感想を公開する。 最初は自分の研究にも関係ある分散トレーシングの分野から有名な論文や開催されたばかりのNSDI'23の論文と、Kubernetesの元になったGoogleのBorgを紹介する。

Dapper, a Large-Scale Distributed Systems Tracing Infrastructure

B. H. Sigelman, L. A. Barroso, M. Burrows, P. Stephenson, M. Plakal, D. Beaver, S. Jaspan, and C. Shanbhag, “Dapper, a large-scale distributed systems tracing infrastructure,” Google, Inc., Tech. Rep., 2010. [Online]. Available: https://research.google.com/archive/papers/dapper-2010-1.pdf

概要
  • アノテーションベースの分散トレーシングツールを提案し、Googleでの活用事例を紹介
  • 低オーバーヘッド・アプリケーションレベルの透過性・スケーラビリティ・オンライン解析を実現
感想
  • 全てのサービスが共通のRPCの仕組みで通信しているというのは今でもやっていることなのか?今だとそれぞれの通信プロトコルに対する計装が必要なのでは
  • Googleみたいな大規模なシステムでアプリ開発のフレームワークが共通化されてるのはすごい
  • 今の分散トレース・APMに関する論文・ツールのメジャーはTrace IDを伝播する形式だが、初期の頃に一番大規模にやったのがDapperなのかな

Pivot Tracing: Dynamic Causal Monitoring for Distributed Systems

J. Mace, R. Roelke, and R. Fonseca, “Pivot tracing: Dynamic causal monitoring for distributed systems,” in Proceedings of the 25th Symposium on Operating Systems Principles, ser. SOSP ’15. New York, NY, USA: Association for Computing Machinery, 2015, p. 378–393. [Online]. Available: https://doi.org/10.1145/2815400.2815415

概要
  • 記録するメトリクスを動的に決定でき、かつシステム境界を超えてイベントの因果関係を記録できるトレーシングシステム
  • 著者はCanopyとかX-Traceとかを中心にそれぞれ分散トレーシングの有名な論文をたくさん出してる
感想
  • Dynamic Instrumentationのメリットであるトレースポイントを定義する手間と直接計装する手間の差はそこまで変わらんのでは
  • クエリによる集計&因果関係の抽出は有用そう
  • Dynamic Instrumentation便利そうなのでトレーシングにもっと上手く使えそうだがあまり使われてないのは何かデメリットがあるのかな
  • 著者が書いてる分散トレーシングの論文を一通り読むのも面白そう

The Benefit of Hindsight: Tracing Edge-Cases in Distributed Systems

L. Zhang, Z. Xie, V. Anand, Y. Vigfusson, and J. Mace, “The benefit of hindsight: Tracing Edge-Cases in distributed systems,” in 20th USENIX Symposium on Networked Systems Design and Implementation (NSDI 23). Boston, MA: USENIX Association, Apr. 2023, pp. 321–339. [Online]. Available: https://www.usenix.org/conference/nsdi23/presentation/zhang-lei

概要
  • トリガーされた時にのみ遡及的にトレースデータを収集することによって、低オーバーヘッドでテールサンプリングをし、エッジケースのトレースをデータを収集する分散トレーシング手法
  • 著者はMPI-SWSを中心とした分散システム・クラウド関連の人たちで、last authorはPivot Tracing&Canopy&Tracing Planeの人
感想
  • 最新のトップ会議論文&有名な分散トレーシングの論文たくさん出してるグループなだけあって、分散トレーシングの分類や歴史についてわかりやすく解説されてて勉強になった
  • 収集前のトレースデータを管理するためのデータ構造を工夫してそうだが、これだけで従来のテールサンプリングもある程度改善しないのかな
  • ランダムにサンプリングするトリガーも追加すると、エッジケースでないトレーシングも同時にできる?
  • 結果を見る感じ、全リクエストをトレースすることより、全トレースデータを収集することの方がオーバーヘッドに影響が大きいのか。それならエッジケースでないトレーシングならテールよりヘッドサンプリングの方が良さそう。
  • OpenTelemetryの計装にうまく合わせることで、既存システムのトレースができ評価対象が増るので、参考にしたい

Canopy: An End-to-End Performance Tracing And Analysis System

J. Kaldor, J. Mace, M. Bejda, E. Gao, W. Kuropatwa, J. O’Neill, K. W. Ong, B. Schaller, P. Shan, B. Viscomi, V. Venkataraman, K. Veeraraghavan, and Y. J. Song, “Canopy: An end-to-end performance tracing and analysis system,” in Proceedings of the 26th Symposium on Operating Systems Principles, ser. SOSP ’17. New York, NY, USA: Association for Computing Machinery, 2017, p. 34–50. [Online]. Available: https://doi.org/10.1145/3132747.3132749

概要
  • 計装と分析を分離しそれぞれをカスタマイズ可能にすることで、異なる性質のアプリで低レベルのトレースをしながら集約によって高レベルのモデリングを可能にしたアノテーションベースのトレーシング
  • Pivot Tracingの人(J Mace)とFacebookのグループによる研究
感想
  • 強調している計装と分析の分離・異なる性質のアプリ間のトレーシングは他でもやってそうだが
  • それ以外はFacebookのシステムの紹介という感じで、新規性があまりわからなかった
  • 他でもやってそうな個々の話をまとめたということ?
  • 低レベルな様々な形式のログデータを収集して、集約しやすい統一の形式にモデリングすることが新しい?

Large-Scale Cluster Management at Google with Borg

A. Verma, L. Pedrosa, M. Korupolu, D. Oppenheimer, E. Tune, and J. Wilkes, “Large-scale cluster management at google with borg,” in Proceedings of the Tenth European Conference on Computer Systems, ser. EuroSys ’15. New York, NY, USA: Association for Computing Machinery, 2015. [Online]. Available: https://doi.org/10.1145/2741948.2741964

概要
  • 数万台のマシンにまたがる複数のクラスタ上で、数千個のアプリからなる数十万のジョブを走らせるクラスタマネージャーBorgの提案と、Googleで10年間運用してきた教訓をどのようにKubernetesに生かしたかの話
感想
  • Borgの設計思想を知ることでKubernetesの設計の理由も知れた気がする。特に複雑な問題設定・Kubernetesにどう生かしたかの話は面白かった。
  • BorgはKubernetesに劣っている印象で、KubernetesがBorgを参考にしているのだから当たり前だが、今のGoogleで使っているBorgはどうなってるんだろうか。