garbagetown

個人の日記です

Google を支える技術

Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)

Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)


自宅で RAID を組んでいる同僚から借りました。
Google が公開している論文などを引用して、その検索技術について解説しています。公開されている情報は限られているので、初期 Google に限定された情報であったり、憶測を交えた歯切れの悪い物言いにならざるを得ない箇所はあるものの、極めて技術者向けで、100 人に 1 人も読まなさそうな書籍に仕上がっています。

序盤

Google の誕生から、検索技術の基本をおさらいする内容です。さくさく読めます。初代 Google がたった 8 台のパソコンで稼動していた事を知って衝撃を受けました。

中盤

有名な GFS*1, Bigtable*2, Sawzall*3 に加えて、ぼくは名称すら知らなかった Chubby*4, MapReduce*5 など、タイトル通り Google を支える技術の解説です。
非常に興味深いけれど、一度読んだだけでは理解し切れず、二周目に突入しています。

終盤

Google の運用コストについての解説です。本屋で目次だけ立ち読みしたときは「電気代の話なんてどうでもいいよ」と思っていたのですが、ここが一番面白かったです。
Google のような巨大なサービスになると、電気代について真剣に考えなければいけないようです。実際、使用電力ではなく使用面積で Google にラックを貸し出していたデータセンターが、Google が電気代を使い過ぎるために倒産した例もあったとか。
で、じゃあコンピュータの電気代って何にいくらかかるんでしょうね、と掘り下げて考えていき、最終的には CPU のパイプライン制御にまで話が及びます。Pentium4 は最悪で Core2 Duo などのマルチコアが最高とのこと。
挙句、規格なんかクソ喰らえと言わんばかりに電源バラして必要な部品だけにしたら変換効率が 90% になりました、とか書いてあって、むちゃくちゃ面白いです。

おまけ


バックアップストレージの中で思い出迷子になっていたら発見。ナツカシイ

*1:GoogleFileSystem の略。何万台ものコンピュータでファイルを分散して扱うファイルシステム

*2:列数がレコードによって異なったり、タイムスタンプによってレコードが厚みを持ったりするデータベースシステム。

*3:後述の MapReduce に特化したスクリプト言語

*4:分散ロックサービス。GFS や Bigtable にはロック機構は存在しないらしい。

*5:かき集めたデータを目的に応じて分解、分類する基盤技術。