ikemonn's blog

技術ネタをちょこちょこと

The Chubby lock service for loosely-coupled distributed systems を読んだ

The Chubby lock service for loosely-coupled distributed systemsを読んだ。

ロックについての基礎知識が無くて全然わからなかった。

どんなもの?

  • 分散システム用のlock service
    • coarse-grained lock
    • GFS, BigTable, MapReduceが共有リソースへのアクセスの同期にChubbyを使っている
    • パフォーマンスよりも可用性と信頼性に重きをおく
    • 多数(数万単位)の小さなmachineから成る分散システム対象

先行研究とくらべて何がすごい?

  • 分散合意問題を非同期コミュニケーションを用いて解決した(Paxos)
  • 小さなサイズのメタデータを全replicaにsyncさせて可用性を担保している

技術や手法の肝は?

  • System構成
    • Chubby cellは5つのレプリカで構成されている
    • Paxosでmasterを選出している
    • レプリカが死ぬと数時間後に free poolから新たなレプリカが選出される
  • Event
    • Chubby Clientはeventをsubscribeできる
      • fileの変更
      • child nodeの追加/削除
      • masterのfailover
      • lockの異常

議論はある?

  • ネットワークが混雑している時にTCPベースのKeepAliveだとsession lostが多くなる
    • UDPを使うようにした

次に読むべき論文は?

趣向を変えて

The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing