検索エンジンの舞台裏

いつもお世話になっている検索エンジンGoogle』は、どういう仕組みでこれだけ高速かつ正確な検索を実現しているのか? みんな興味があると見えて、一般教養的な解説書はたくさん出回っているけれど、どれもこれも隔靴掻痒*1の感を免れなかった。

いま評判の『Googleを支える技術―巨大システムの内側の世界』(西田圭介著、技術評論社)を読んで、ようやくGoogleの底知れぬ技術の片鱗に触れられた気がする。多少のプログラミング知識のある読者に向けて、Googleが公開した論文を頼りに、Googleの基盤となるソフトウェア技術を分かりやすく解説した労作だ。

Googleのコンピュータシステムにはメインフレーム(大型コンピュータ)など1台もなく、世界各地のデータセンターにあるパソコン並みの小型コンピュータを数十万台以上(?)結合した「分散処理の権化」のような存在…ということはよく知られている。それらのコンピュータをフルに使って、膨大な計算量を要する検索エンジンやら各種サービスやらを快適な動作速度で提供できている秘訣は何か?

そのカギは「システムの大胆な単純化」にあるようだ。OSにせよプログラミング言語にせよ検索エンジンなどの用途別ソフトにせよ、欲張ってたくさんの機能を盛り込むのではなく、Googleのサービスにとって本当に必要な機能だけを厳しく選び出し、極限までの効率化を図っている。この思い切りのよさは、器用貧乏な日本人にはなかなか難しいのだろうな…と思った。

技術系の解説書で、「続きが読みたくてしょうがない!」という気持ちになったのは久しぶりだ。なにしろ対象が普段散々お世話になっているモノなので、好奇心を満たしてくれる良書として(幅広く…と言えないのが残念だが)お勧めしたい。

以下余談…

Googleの検索結果にも、たまに「あれ?」と思うことがある。私がよく検索するキーワードで、いつも14番手あたりをキープしていたご贔屓のブログが、2週間くらい前から検索結果に出てこなくなった。ブログ名そのもので検索しても20位に入らない。もちろんブログの内容には問題ないので不可解至極。早く復活してほしいと思う。

*1:3つ前の記事タイトルに使ったばかりだが、そうとしか言いようがないので御免^^;