小飼弾のアルファギークに逢いたい♥

#19 プリファードインフラストラクチャー 太田 一樹,岡野原 大輔,田中 英行

この記事を読むのに必要な時間:およそ 5 分

会社紹介

弾:PFIとはどんな会社でしょう?

太:(設立当初に)岡野原さんがいたということで,検索エンジン,レコメンドエンジン,連想検索エンジン,関連記事推薦エンジンなどの自然言語処理/大規模データ処理を核にしたミドルウェアを作っています。ビジネスモデルの面では,パッケージソフトとして売ってライセンス収入を得ることと,いろいろな企業さんと共同開発的に一緒にプロダクト作って売っていこうとしてます。

弾さんが着ているのはPFIが運営している「ねことパソコン」Tシャツ

弾さんが着ているのはPFIが運営している「ねことパソコン」Tシャツ

一番好きなプロダクト

弾:これまでで手がけたプロダクトで一番好きなのは何ですか?

太:僕は今作っている検索エンジンのSedue(セデュー)かな。

弾:Sedueとはなんでしょうか?

太:今作っている大規模分散検索エンジンで,いろんなマシンを使って効率的に分散の全文検索をするっていうものです。上のシステムのレイヤを僕は書いていて。マシンが協調しながら動いているのが,どうも楽しくて。うまく動いたときは,ほんとにうれしい。

田:会社で作ったもので言うと,基盤のライブラリでPFICommonっていうのがありまして,それが結構C++で割にきれいにできたなあって思っていて,気に入ってます。

弾:岡野原さんは?

岡:僕は,Sedueの中に使っている,CSA注16っていう圧縮接尾辞配列のやつとかはなんで動いてるのかいまだによくわからない(笑⁠⁠。

弾:ちょっと待ってください(笑)

岡:結構僕,アルゴリズム的には適当な人で,+1とか-1とかよくずれているので,これ+1にすればいいのかなとか言って,適当に調整する人なんですよ。こわい(笑⁠⁠。

太:負荷かけてもまったく落ちないけどね(笑⁠⁠。

岡:結構,直感的に書いてる(笑⁠⁠。で,CSAとかは理論的にあったやつを実際に動かせるようになったし,みんなに使ってもらっているので,自信作とまではいかないですけど,いいかなと思います。

注16)
Compressed Suffix Arrays.

はてなとの提携

弾:はてなとの提携ってどういういきさつだったんですか。

岡:これはまさに僕がWEB+DB PRESSに書いた記事注17を見て,近藤さん注18からメールが来て,話しましょうって。で,うちの会社に来て,ちょっと話をして,おもしろいことできそうだから,とりあえずなんか作ってみようかっていう話からスタートですね。

太:近藤さんがこちらに来て,じゃあ行こうかって社員全員で京都に乗り込んで(笑⁠⁠。9人か10人くらいで。

弾:ずいぶんな大人数ですね。

岡:旅行も兼ねて(笑⁠⁠。結構,開発合宿は今までも年に何回かやっているので,京都行って開発してみたいなっていうのがあって,実際にいくつかサービスかひな形を作ったから,それを出す。

太:はてブの関連エントリ機能とかはそこで作りました。

注17)
本誌Vol.42 特集「オブジェクト指向世代のためのアルゴリズム&データ構造最新入門」第4章「大規模データを高速・コンパクトに処理するデータ構造」第5章「簡潔データ構造と全文索引の基礎」
注18)
⁠株⁠はてな代表取締役の近藤淳也さん。

アルゴリズムの重要性

弾:アルゴリズムって,どれくらい重要なんでしょうか。

岡:イノベーションを起こすくらいの領域だと,重要かなとは思いますね。でも,アルゴリズムはあくまで道具で,適材適所で,このアルゴリズムが使えるなっていうのを見積もれるのが,どちらかというと大事な気がします。たとえばこれくらいの問題について,これくらいの実装コスト,このくらいの期間で作るっていうのがあるとき,これくらいの複雑さのこのアルゴリズムを作ろうって,ぱっと言える能力がある人がいい。

田:それ以前の話としても,WebのフロントエンドのPHPとかPerlとかでWebアプリケーション書いてるような人でも,たとえばPHPとかPerlだったらハッシュとかありますよね。そのハッシュがなんで動いてるのかを知っておかないと,たとえばそれでPerlでコードを書いて動かせなかったときに原因を推察したりとか,裏で動いているものを知っておくとかは重要なんではないかと。

田:自分で書いたループがどれくらい時間がかかるとか,そういうのもイメージできるようになっておかないと,やっぱりサービスとか作るときでも,ユーザが急激に増えたときにどうなってしまうかとか。そのへんがやっぱりアルゴリズムは重要だと思います。

SSD

弾:今,どんな技術に注目してますか?

岡:SSD注19とか。

弾:SSDは久しぶりに大物がきましたよね。

太:田中さんはうちのSSDの検索エンジンのコアアルゴリズムを書いていて。こないだ,全言語のWikipediaを1つのSSDで一瞬で検索するっていうデモを作って。それを書いたのが田中さんなんですよ。

田:SSDでヘッドがない分,レイテンシ注20が低いので。ある程度ランダムアクセスができちゃうので,だいぶ違うアルゴリズムが載るんですね。

岡:メモリとディスクだと,とても無理だって,諦めてたようなやつがいともたやすく。

弾:SSDの時代にも昔の超遅いハードディスクがあってっていうようなモデルに立脚したOSっていいと思います。僕もいろんな人にさんざん言ってて,UNIXって,便利だよね,わかりやすいよね,エンジニアの直感に沿うよね,その世界に生きていればラクだね。っていうのはあるけど,それだけじゃつまんなくねっていうのは,よく言うんですよ。今どきOS作るって,ログインプロンプトが出てくるだけじゃ全然だめで,ブラウザが動いてなんぼでしょ? って,今は亡き,いとじゅんさん注21に言われてしょぼーんとしたことがあるんですけど,そろそろその話を蒸し返してみようかなと。

岡:逆にブラウザが動けば,ほとんどこと足りるので。

弾:Firefoxを移植しておけば。

岡:そう(笑⁠⁠,ほんとにあり得るなあと思いますね。

太:ブラウザじゃなくて,ほかのキラーアプリケーションが登場したら,またモデルが変わるんじゃないかと。ブラウザに縛られ過ぎてる気がする。

弾:うんうん。

太:ブラウザが槍だとしたら,銃みたいのが出て,どかーんて。

岡:ブラウザかんけーねーみたいな。

太:そう。

弾:そもそも,RAMがございまして,基本的にやることはRAMとCPUの中のレジスタに納めますけど,それは消えないようにするためにハードディスクに書き込まなきゃいけなくて,まず起動するときにハードディスクを読みにいくっていうのが,アホかと。SSDにあるんだったら,SSDにあるものとかmmap()注22しておいて,もう起動の必要のないシステムというのができるじゃないかと。MSXの時代に戻る(笑⁠⁠。

太田一樹氏

太田一樹氏

太:Solaris使えばいけますよ。SolarisはZFS注23っていうファイルシステムがありますけど,SSDをキャッシュにしながらも裏をハードウェアにして,ZFSにアクセスすると,よく使うデータはSSD上にみたいな。エンタープライズサーバみたいな,そういう。

弾:いやあ,ZFSいい(笑⁠⁠。だけども,やっぱりフロントエンドがUNIX的な考えに凝り固まってるじゃないですか。だからPalm OSって,ちょっといいなあと思ったことがあります。それは何かっていうと,ファイルシステムっていう概念がない。

太:そうなんですか。使ったことがない。

弾:うん。オブジェクトしかないんですよ,中に。だからそういうようなPalmが出始めるとまたコンピュータの世界もおもしろくなるかなと。今,ほんとにすごいラクで,ラクな代わりにすごい退屈なの。で,SSDって久しぶりのヒットやこれ,っていう。

全部SSDというのか,要はランダムアクセスのスピードが速くなったときっていうのは,またこれがシーンが変わりますよね。まさにSSDで。

岡:アルゴリズムの研究でも,今までのメモリを前提にしてたようなやつから,全然世界が変わっちゃって,今までのいろんなモデルとかも,崩れてしまうし。

田:まだSSDのランダムアクセスがメモリ並みに速いわけではない。

岡:もうちょっと工夫しないと。

田:もうちょっと中間的なアルゴリズムが作れる余地があるのがまだビジネス的にはいいのかな(笑⁠⁠。

弾:ところが,今のところ,そのSSDというのも,SSDの特性を活かすのではなく,あくまでヘッドがないハードディスクとして使ってますよね。

注19)
Solid State Drive,フラッシュドライブ。
注20)
待ち時間。
注21)
萩野純一郎さん。IPv6のKAMEプロジェクトのコアメンバー,WIDEプロジェクトのボード・メンバーなどとして活躍した。2007年,37歳の若さで他界。
注22)
ファイルの内容をメモリに直に対応させるAPI。
注23)
Sun Microsystemsが開発,Solarisがサポートしているファイルシステムで,無限に近いデータ容量を持つ拡張性,データエラーに非常に強い堅牢性などを特徴とする。FreeBSD,Mac OS Xでも搭載されている。

著者プロフィール

小飼弾(こがいだん)

ブロガー/オープンソースプログラマー/投資家などなど。ディーエイエヌ(有)代表取締役。1999~2001年(株)オン・ザ・エッヂ(現(株)ライブドア)取締役最高技術責任者(CTO)。プログラミング言語Perlでは,標準添付最大のモジュールEncodeのメンテナンス担当。著書に『アルファギークに逢ってきた』(2008年5月,技術評論社)。ブログは『404 Blog Not Found』

URLhttp://blog.livedoor.jp/dankogai/