処理の分散化
Googleでは、世界中のウェブページのコピーを取得・保存し、そのコピーを参照することで、ユーザからの問合せに速やかに答えるという方法がとられています。この方法によって問合せに対する応答は確かに速くなりますが、その一方で、コピーの取得にとても時間がかかるという欠陥があります。
ウェブページを巡回してコピーを取得するソフトウェアは、クローラー(crawler)と呼ばれています。クローラーの基本動作は、訪問したページから張られているリンクを順番にたどっていくという単純なものです(ただし効率をあげるには、できるだけ重複したページを訪問しないような工夫が必要です。簡単な練習問題なので、どのようにすればうまくできるのかを考えてみてください)。クローラーの具体的な動作は公開されていませんが、一説によると、およそ数週間から1か月程度で一巡するようです。したがって最悪の場合、ウェブページの更新が検索エンジン上のコピーに反映させられるまでの時間は、数週間程度かかってしまうことになります。1年間に数回程度しか更新されないページであればそのような長い巡回遅延も問題にはなりませんが、ニュースサイトやブログのように頻繁に更新されるページにとっては、クローラーの巡回遅延はとても深刻な問題です(大きな事故があったときに、その事故のことを検索して関連するニュースサイトやブログをアクセスするということは、多くのインターネットユーザが普通におこなっています)。
この問題を解決する一つの方法は、通常のクローラーとは別に、特定のサイトを短い周期で巡回するクローラー(フレッシュクローラー)を用意し、並行して動作させることです。ウェブページ全体をカバーする役割と、特定のページの鮮度をたもつ役割とをうまくわけるのですね。お互いに足を引っ張り合うのではなく、双方の良いとこ取りをしようというのが基本的なアイデアです(少し専門的になりますが、メモリやディスクなどのメモリ階層などでも、同様のアイデアがつかわれています)。この方法だと、特定のページについては確かに巡回周期を短くすることができます。しかし、どのサイトをフレッシュクローラーでカバーするかは検索エンジン側にまかされており、フレッシュクローラーでカバーされないページについては、巡回遅延の長さという課題は全然解決されていません。
我々が現在とりくんでいる課題のひとつは、ウェブ空間全体に対する巡回遅延を、分散処理技術を使って短縮しようというものです。たとえは少し悪いですが、日本中のごみを一か所に集めようとすると清掃車はとても大変だけれども、それぞれの街ごとに集積するのであれば収集にはそれほど時間はかかりません。ごみを出す人ひとりひとりが近くのごみ置き場までごみをもっていくようにすれば、収集の手間はさらに軽減されます。あとは、街ごとに集積された情報をどうやってインターネット全体から参照できるようにするかということを考えればよいのです。もちろん実際にはもう少しやっかいな問題を解決しなくてはならないのですが、その詳細については別稿にゆずりたいと思います。
次のテーマを見る | トップページへ戻る |