"Fuxi: a fault-tolerant resource management and job scheduling system at internet scale" を読んだ

授業の輪講でアリババクラウドが作ったFuxiという分散処理システム用スケジューラー/リソースマネージャについての論文を読んで発表しました。専門分野ではないし、分散処理システムを触ったことすら無いので間違いはあると思います。

Zhang, Zhuo, et al. "Fuxi: a fault-tolerant resource management and job scheduling system at internet scale." Proceedings of the VLDB Endowment 7.13 (2014): 1393-1404.

どんなシステムなのか

とても簡単に説明すると、

  • 速い
  • 落ちても死なない

バッチジョブ処理システムを安全に素早く実行するためのシステムです。

そしてこの"速い"を実現するのがIncremental Schedulingです。マスターノードは、アプリケーションからのリソース要求があった際に不足分をマスターノード中の待ち行列に入れて後から割り当てるようにしています。

"落ちても死なない"はマスターノードのホットスタンバイによって実現されています。マスターノードを常時2つ立ち上げておいて稼働系が以上を起こした場合に待機系に切り替えます。この時管理する全てのジョブの状態の復元も行われます。

また、Gray Sortという世界的なソートのコンペで優勝しています。Gray Sortは100TBのデータをソートする時間を競います。

f:id:asmsuechan:20191102095514p:plain

Sort Benchmark Home Page

(これ、純粋にマシンの台数で勝ってるのでは?という気持ちになった)

どうやらシステムはYARNをベースに考えているみたいです(FuxiとYARNは似たアプローチを取っている、と書かれていた)。

アリババクラウドでも使用することが出来て、MaxComputeというサービスの基盤部分で使用されています。

読んだ感想

発表中の先生のフィードバック込み。

  • 待ち行列に全部ぶっこむって書いてあるけどこれは本当にスケジューリングなのか・・・あれこれ考えないから速いっちゃ速いだろうけど
  • 評価が雑。5000台のマシンに1000個のジョブを投入するって、ジョブはマシン台数に比べて少なくない?
  • このシステムの評価には待ち行列の状態の遷移がなくてはならないのでは?
  • 引き継ぐ予定のないシステムの仕様書の概要を見せられてる気持ちになった
  • 「俺らの作った最強のシステムを見てくれ」な論文であった。とはいえ実際に動いているのはすごい。
  • MaxCompute触りたい
  • 分散処理システムに興味を持った。ビッグデータで遊びたい。

結構ゆるふわな論文になっちゃってるのは、実際に企業を支えている基盤のシステムでさらにアリババクラウドでサービスとして提供されているので多くは書けなかった、ということが原因だと思います。

割と辛辣に書きましたけど自分はそんなに大層な論文を書けるわけではないのでVLDB通してて凄いと思っています。

理解の参考にしたサイト