2007-02-15 (Thu) [長年日記]

デブサミ2007

今日だけ参加。Googleのやつ聞いてきたよ。

資料に不備があってちゃんと再生できない箇所があったので、資料が公開されるといいのだけれど*1

  • Protocol Buffer … 分散RPCのwrapper? 同じような機能のAPIの違いを吸収してdispatchする。Googleのシステムで広く使われている。
  • Bigtableスゴス
  • Bigtableは表計算のセルのようなデータ構造を分散して格納することができるデータベース。
  • 他のデータベースには無い概念として時間軸も持つ。セルのXとYが指し示す場所に異なる時間軸のデータが蓄積されるイメージ。デフォルトでは最新のデータを取得するような動作をする。→Webページの保存に都合がよい。
  • データは辞書順にソートされて格納される。セルが多くなると分割され別のマシンに格納される。
  • なぜソートするのかというとたとえばURLでソートすると、近くのデータは似ているという性格がある。圧縮効率がよくなったりする。使う側もソート済みであることを意識したコーディングをすることで最適化することができる。
  • 既存のRDBを使わないのはHTMLページの全体の格納に最適化されていないので、現実的でないのが分かっているから。
  • RDBのようにデータアクセスについて抽象度を高めるのでなく、分散データベースをそこそこの抽象度で提供する。
  • 無いものは作るのがGoogleの重要なフィロソフィー。
  • GFS(Google FS)は分散ファイルシステムでBigtableのインフラ。ext3のようなOSのいわゆるPhysicalなFile Systemではない。アプリケーションレイヤーで実装。
  • Bigtableを支えるサーバ郡は2万台。このオーダーではDNSが使い物にならない。DNSの代わりにconsistentに名前解決できる分散キャッシュを使う。2万台もあると、どっかが必ず壊れてる。壊れる前提でシステム構築されている。
  • Bigtableは保存するときにGFSでコミットログも記録するので、どっかがダウンしても復旧できる。
  • Bigtableのマスターとサーバーとクライアントの関係とか説明されたがちゃんと理解してない。

*1 恐らくWindowsで作ったpptをMacBookで再生したせいで一部のアニメーションが互換性の無い動きをしたためかな?