2004.10.02
検索のパラダイムシフト、インデックスを使わない「Shunsaku」
CNET Japan : 江島健太郎 / Kenn's Clairvoyance
ハードウェアの小型化がもたらすスケール・シフト
http://blog.japan.cnet.com/kenn/archives/001685.html

インデックスを使わない検索技術、富士通の「Shunsaku」が紹介されている。

Interstage Shunsaku Data Manager
http://interstage.fujitsu.com/jp/v6/shunsaku/

<説明によると、とにかくデータはブレードサーバに並列展開してオンメモリで常備しておき、問い合わせはマスター(ここではディレクタサーバと呼ばれている)が窓口として受けてバックヤードのブレード群にパラレルにブロードキャストし、各ブレードはマスターから問い合わせを受けたら(九州大学の研究グループが生み出したSIGMAという検索語照合エンジンを用いて)とにかく一度だけ全データをフルスキャンして目的のものを見つけ、マスターへ応答を返すというのだ。どのブレードにおいてもフルスキャンにかかる時間はいつでも一定だから、一定のパフォーマンスが得られるという明快な理屈である>。

スケールを効かせて、なんとオンメモリの実データをフルスキャンしてしまい、インデックスを使わないというのだ。これはすごい。

これこそまさに、検索のパラダイムシフトという気がする。
検索のグリッド化であり、検索の「富豪プログラミング」とも言えるかもしれない。

この話を読んだとき、私のアタマの中で回路の組み換えが起きたような気がした。

かつてマシンリソースがまだ高価だった時代に、なるべくメモリを節約するようなプログラミングがおこなわれていたことがあった。それがひとつの「技術」だったのだ。

いまではJavaやスクリプト言語などを使って、メモリをじゃんじゃん使うプログラミングがおこなわれている。いまではマシンリソースは安く、人間の開発コストのほうが高いので、人間にとってラクに開発できたり、メンテしやすいほうが選ばれる(なお、組み込み系などマシンリソースの制約が大きい分野では、まだ「リソース・コンシャス」な技術も重要である)。

マシンリソースが安価になって、メモリを節約するようなプログラミングが不要になったように、多数の並列マシンと、タスクを分解して並列処理する仕組み(いわゆる「グリッド」って、この両方を指すのだろうか?)が一般的になってくれば、「インデックス」というものは消滅するのかもしれない。

上記の記事で、江島さんはこう書いている。

<実は、スケールアウト型の検索システムというのはそれ自体、新しいアイデアではない。典型的にはGoogleのサーバ・ファームがそれである。 Shunsakuのアイデアが面白いのは、まさにGoogleが自社サービスのために巨額の投資をして作り上げてきたシステムを、ほんのちょっとしたエッセンスを加えることで、まるでパズルの最後のワン・ピースのように、ガクンと大幅にコモディティ化してしまえる可能性につなげたところである>。

これは鋭い指摘。「Googleのコモディティ化」というテーマは、GoogleがTim O'Reilly言うところの「キラー・アプリ」の代表であることを考えると、さらに面白い。

かつて「コンピュータ」というものがきわめて高価で、それを1人1台持つということなど考えられない時代があった。サイン会か何かのように、みんなコンピュータの前に行列して、1人あたりのわずかな持ち時間を有効に使えるよう、手には「プログラムの下書き」があったというのだ。それがいまや、1人で何台もPCを持つことさえ当たり前になり、使わないで放置されているPCもゴロゴロしている。

かつて、伊藤ガビン(「パラッパラッパー」などで知られる)がこんなことを書いていた。「ゲームを考えるときは、東京ドームに何万人ものプログラマがいて、それが自由に使えるつもりで考える」、と。

現実の制約を外して想像力をはばたかせるには、こういう「大富豪的な発想」が必要なのだろう。

かつては大富豪にしか可能でなかったことが、技術の発展によりいずれコモディティ化し、「みんなのもの」になる。未来のコモディティを想像するには、大富豪になったつもりで、いまの現実的な制約をいちど忘れる必要があるのだ。

HPのフィオリーナが言う「everything is possible」も、こういう意味なのかもしれない。