Cassandra

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分で検知できている
  • プロセスにつきひとつの\Phi(t)が決まる
  • プロセスが正常なら、任意のTについて Phi(t) = 0 for t >= T
  • Heartbeat arrivalの間隔を計測して、CDFが一定レベル以上になったらPhiが上がる
  • 約束した一定間隔と乖離してくると値があがる

Lessons Learnt

  • 妙な機能は、絶対に必要なときだけ導入せよ
  • Value Simple Designs
  • ネットワークがボトルネック

Future works

  • Distributed Transaction / 複数キーのAtomicな更新
  • ACL