# データ基盤の資源共有
## 定義
データ基盤の資源共有とは、対話的なアドホック分析と期限付きの定期バッチのように、異なるレイテンシー・予測可能性・資源要求を持つジョブへ、共通のクラスタ資源を配分する設計問題である。
単純な公平配分だけではなく、ジョブの優先度、最低資源量、タスクの横取り、CPU・メモリ使用量、データ局所性、本番処理への隔離を同時に扱う必要がある。(Source: [[@2010__SIGMOD__Data Warehousing and Analytics Infrastructure at Facebook]])
## Facebookにおける設計
Facebookは、利用者・ジョブごとのプール、定期ジョブ用の最低資源量付きプール、CPU・メモリを意識したタスク配置、データ局所性を使う待機を組み合わせた。
さらに、厳格な期限を持つ本番ジョブと、歴史データを対象にするアドホックジョブを物理的に別クラスタへ分離した。
クラスタ分離は利用率を下げる可能性があるが、悪いアドホッククエリによる本番ジョブの飢餓を防ぎ、実行時間の予測可能性を優先する。(Source: [[@2010__SIGMOD__Data Warehousing and Analytics Infrastructure at Facebook]])
## 横断的知見
- 単一ソースからの初出であり、異なるスケジューリング方式の横断比較は未実施である。
## 未解決の問い
- タスクの横取りを使わないFair Share Schedulerで、長時間ジョブによる飢餓をどのように定量的に抑えられるか。
- 本番・アドホッククラスタの物理分離と、単一クラスタ内の優先度・資源予約を、同一の負荷分布で比較するとどの条件で分離が有利になるか。
- CPU・メモリだけでなくネットワーク・ディスクI/Oも資源認識型スケジューリングへ加えると、HDFSのデータ局所性とどのようなトレードオフになるか。
- データウェアハウスのクエリ最適化、ジョブスケジューラ、SLA監視を一つのフィードバック制御として扱う設計は可能か。
## 関連
- ソース: [[@2010__SIGMOD__Data Warehousing and Analytics Infrastructure at Facebook]]
- 実体: [[Apache Hadoop]] / [[Hadoop Fair Share Scheduler]] / [[Databee]]
- 概念: [[データウェアハウス]] / [[GPUクラスタスケジューリング]]
## 出典
- [[@2010__SIGMOD__Data Warehousing and Analytics Infrastructure at Facebook]]