Google を支える技術

読んだ。なんか 3 ヵ月くらいかかった気がする。もともと読書時間が短いつーのもあるんだけどそれ以上にすごい読みにくかった。このひとの文の書き方はちょっと論文ぽいんだけど、その割には伝聞の表現を使うし参考文献は各ページの脚注にはあるんだけどまとめてるページがないしで惜しい感じ。あと全編にわたって個々の技術とか実装詳細の紹介と解説をしてるんだけどもう少し overview があってもよかったというか、最初の前置きとしてこういう流れで行きますよ的なものがあってもよかったと思う。章・節の並びは基盤システムからだんだん高次レベルへ行ってるんだけど節が変わるといきなりハナシが飛ぶのでちょっと戸惑った。

たぶん google で使われてる技術の列挙と平易な解説がしたいんだろうと思うんだけど中途半端だったり蛇足な説明が多い気がする。たとえば GFS や Bigtable に関する性能評価は大雑把に論じてるんだけど chubby に関してはノータッチだし、電力消費を抑えるにはどうするかっていうハナシで CPU の設計についてとか CMOS の構造について説明してたりするんだけど知ってる人間からすると中途半端すぎてかえって混乱する説明だったので、むしろ一般傾向だけを示して詳細な説明は参考文献を挙げるとかにすればいいんじゃないかと思ったりした。

というかストーリーがないのが読みにくい一番の原因なのかなと思う。年代的にどういう技術を使ってきたかを年表形式で説明していくとか、検索用のインデックスを作るために各技術がどういう感じで絡んでるかをトップダウンで見ていくとかのがわかりやすかったんじゃないかなぁ。

あとこの本を理解するためにはざっと

  • 自然言語解析
  • 集合論
  • 行列演算
  • 大規模並列化
  • super computer
  • 論理回路
  • filesystem
  • database
  • PC の構成単位 ( PWR, M/B, CPU, memory, storage etc )

あたりの知識と PC を管理した経験とかが必要になると思うんだけどここらへん知ってる人はむしろ google の出してる論文 ( http://research.google.com/pubs/papers.html ) を読み漁ったほうが早いと思うし、知らないひとはなんかよくわからないと思う。そういう意味だと ¥2300 するわりには知識への変換効率が低すぎるというか価格が高すぎるというか。おれは google が論文出してることを知れたくらいしか身にならなかったのでんー、という感じ。

内容に関しては scale out 全面勝利みたいな感じで資金や電力なんかの現実的な制約を考えると scale up ? なにそれウマいの ? っていうハナシ。確か大学時代に大規模並列化のハナシを聞いたことがあって同期処理とかの性能上の問題や実効率の向上に関する課題は知ってたんだけど、そこらへんの技術的な話題は Bigtable + MapReduce on GFS でうまくいくよーってハナシみたい ( まぁどこまでうまくいってるのかはアレだけど、ネットワーク上の情報を少しのディレイでインデクシングしている実例はあるのである程度は信用できるのかも ) 。

電力がどうこうとかは国営じゃない企業だからやらざるを得ないだけで google 程度の大規模なシステムになると 0.01% 削れれば目に見える形で楽になるのがわかりきっているから細部までつめているだけなんじゃないかな。大体通常のオーダーだとどんなドメインのハナシでもパレートの法則で効果のある 20% をなんとかすれば問題解決には十分なことが多いんだけどそれをしてもなお残り 80% に手を入れることに意義があるというスケールなだけなんじゃないかという。ここまでのスケールになるとパレートの法則は優先順位を決めるくらいしか意義がなくなるということでもあるかな。

むしろ google がそういった情報を少しだけでも出しているという点はノウハウの独占とかいう視点からすると称賛すべきハナシだとは思う ( http://www.google.com/corporate/datacenters/ ) 。まぁ google の中のひとは本気で世界を作りかえられると思ってる現実的な理想主義者を地で行くひとたちなので、そういうデータを出すことで電力会社とか storage のメーカとかを煽ってるだけなのかもしれんけど ( 偏見 ) 。