Googleを支える技術/西田 圭介
Googleっは、あっという間に世界を作り替えてしまいました。インターネットにおける検索サービスというのは、それこそインターネット自体や、もっと言えば活版印刷ぐらいの革命的な技術です。今となっては当たり前のように「ググって」いて、ググレカスなんて言葉もあるぐらいですが、Googleの登場以前、インターネットYP(これ、書籍)、Yahoo、altavistaの頃までは、インターネット上のどこに求める情報があるかを示す索引を機械生成できるかどうか、それが人間が求める、使えるレベルになるかということはまったく自明のことではなかったのです。コンピューティングの性能の限界という問題以前に、そもそも可能かどうかがわからなったんです。
そこへpagerankという概念をひっさげてGoogleが登場。Googleの素っ気ないトップページから入力すれば、有用(っぽい)な順に検索結果が並んでいるというのは、画期的でした。
ただ、その画期的なシステムを支える別の側面については、その存在意義も含めてあんまり語られることがなかったように思います。ここ数年、注目されてきた「クラウドコンピューティング」という側面です。
皆さんもWebを使っていて実感があると思いますが、どんなWeb上のシステムでもアクセスが集中すれば遅くなります。大量の情報を処理するのは時間がかかります。にも関わらず、Googleの検索結果はいつでもすぐに返ってきますし、私が今夜公開するブログは数時間後には(もっと早い?)Googleの検索結果に載ってきます。これは、すごいことです。
世の中に存在するWebアプリは、ほぼすべてがOracleやDB2などのRDBをストレージにしています。ただし、この仕組みでは大量の処理を捌くにはRDBの負荷分散やチューニングが必要です。しかし、おそらく本当にGoogleがやっているレベルでの大量処理はRDBでは不可能です。そこで何が行われているかが書かれているのが、この本です。一応、誰でも読めるレベルで書かれていますが、本質的な理解は、なんらかのプログラミング言語でのプログラム作成の経験があり、「ファイルのオープン」と「メモリのアロケーション」のイメージが出来ている必要があります。
めちゃめちゃ単純化していえば、Amazonやはてなは、本質的な仕組みとしてPC上に「ミニAmazon」「ミニはてな」を作って動かすことができる・・・つまり、OSやファイルシステムやプログラミング言語はすでに確立されたものを使ったアプリケーションとして作られているけども、Googleはそのレベルから自分で作っているということなんです。もちろん、そんな七面倒くさいことが必要なのは、Googleほどのことをやる時だけでいいわけですが、逆に言えば、世界でGoogleだけがそんなことを本気でやって、今、まさに年中無休で動かしているわけです。すごいことです。
とにかく、Googleは何を実現するために、何が必要で、何を作っているのか。SEだったら知らないと恥ずかしいとすら思います。ともかく読め。で、読んだ後、さて、Googleをもう一個つくるにはいったいどうしたらいいか考えて途方に暮れてみましょう。しかし、我々の世の中にとって、Googleのオルタナティブがないことの意味ってのは、どう考えればいいんでしょうね。悩んでしまいます。
「書籍・雑誌」カテゴリの記事
- 仏教は、いかにして多様化したか/佐々木閑(2025.05.11)
- どこまでやったらクビになるか/大内伸哉(2025.05.10)
- 酒を主食とする人々/高野秀行(2025.04.19)
- コード・ブッダ/円城塔(2025.03.01)
Comments