「Googleを支える技術」の感想

Googleを支える技術 ~巨大システムの内側の世界 [WEB+DB PRESS plusシリーズ] (WEB+DB PRESSプラスシリーズ)
読みました。日本語で、Googleを支える技術(特に分散処理)の部分をここまで丁寧に書かれた本は無いので、分散処理、ペタバイト級の大規模データ処理などに興味がある人、今の(というか、おそらく少し前の)googleに興味ある人は必読。いわゆるハイパフォーマンス様のベクトル計算機クラスタとは全く違ったパラダイムで構築されています。Yahoo!のバックエンドも同様になっているのでしょう。同様のまとまった文章は、もしかしたら英語でも無いかもしれませんね。Introduction to Information RetrievalなどにMapReduceなどの説明がありますが、もっと情報抽出よりなので、Googleのシステムを網羅する形にはなっていません。

この本のKeywordは、Google File System, BigTable, Chubby, MapReduce, Sawzall。
検索ランキングシステムのPageRankの説明を期待する人もいるかもしれませんが、ほぼPageRankについては解説がありません(ランキングに関しては、最近論文も出ていないと思います)。ここからもGoogleが検索の会社からスタートして、今では、大規模情報をmanageして、提供する事を生業としている会社になっている事がわかります。
また、この本のよい点としては、BigTableMapReduceなどそれぞれの説明だけでなく、BigTable -> MapReduce -> BigTableという流れなどを、コラムとして補足している事です。Googleは、様々なシステムが、有機的に結びついていることがわかります。

この本に書かれていることは、今までGoogleから漏れていた論文のまとめであり、著者独自の研究・実験内容や取材があるわけではないので、Google関連の論文などを追っている人には、新しい情報は無いでしょう。とはいえ、よくある翻訳本とは違い、作者の言葉で非常によくまとめられており(作者の理解力と技術力が高い事が推察されます)、平易に読めるので、よいまとめ本です。

以上、べた褒めしましたが、「はじめに」に大学3年生程度の知識で読み進められるように書いたと書いてありますが(極端な例だとB+-Treeの構造などは説明していません)、特に大規模データの処理をしたことの無い人には実感の湧かない話が多いのではないかと思います。そのような場合はじっくりと自分でプログラムを書くような想像をしつつ読み進める事をおすすめします。

個人的に考えたこととしては、

  • MapReduceのシステムを生かしたマイニングアルゴリズム設計をしても、おもしろいかも。
  • このシステムを利用できるのは、うらやましいなぁ。自分でも、設計してみたいなぁ。(技術者魂)
    • amazon ec2とかをうまく利用すれば、遊べるかなぁ。
  • 大学3年生でも、この本が実感でき、アルゴリズム設計を考えるきっかけを作る教育も求められているのだろうなぁ、と自戒。