Facebookのストレージインフラ。ソースやVLDBだかSIGMOD08だかの発表資料が公開されている。
- 要件はmixiとそっくり。
- random readとrandom writeがものすごい勢いで同時にやってくる
- インクリメンタルなスケーラビリティ
- 安い管理コスト、永続化、レプリケーション、etc...
- DHT使ったBigTableみたいな感じー
- 'always writable' && 'no lock in critical path' && sequencial disk access(write)
- membership: Gossip, routing: DHT
- 列指向スキーマ、Memtable, Tx logはローカルに書く
- レプリケーションはdigest比較
Accrual Failure Detector
- Phi: suspicion level
- 故障を10〜15分で検知できている
- プロセスにつきひとつのが決まる
- プロセスが正常なら、任意のTについて Phi(t) = 0 for t >= T
- Heartbeat arrivalの間隔を計測して、CDFが一定レベル以上になったらPhiが上がる
- 約束した一定間隔と乖離してくると値があがる
Lessons Learnt
- 妙な機能は、絶対に必要なときだけ導入せよ
- Value Simple Designs
- ネットワークがボトルネック
Future works
- Distributed Transaction / 複数キーのAtomicな更新
- ACL