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で再生したせいで一部のアニメーションが互換性の無い動きをしたためかな?