大規模分散処理基盤プロジェクトにRubyで挑戦--まつもとゆきひろ氏

田中好伸(編集部)
2007-12-19 18:00:00
  • このエントリーをはてなブックマークに追加

 「たとえばあるループ処理を回すのに何秒かかったとか、そういう些細なことでプログラミング言語を貶めたり、そういうことだけで評価される人というのが実際にいたりする。技術者自身はRubyを使いたいと思っているのに、そういう人が(社内で)上にいることで、Rubyが使われないというのはもったいないじゃないですか。そうした事態をなくすために、Rubyの高速化はしたいと思っています。そうした問題を解決するのが、われわれのやっていきたいことだと思っていますね」

 現在開発中の1.9では「解決したか、あるいは納得したかのどちらかなので、ここをこうしたいという課題はあまり残っていない」としながらも、2.0以後の課題としては、ソフトウェアの規模が大きくなってきた時にどのように対応すべきかが課題になってくるのでは、という考えを持っているという。それは、どのようにして分散開発を進めていくかということに関わっているようだ。

 「Rubyの場合、既存のクラスを含めて、すべて書き換えてしまうことができるんですね。そうすると影響の範囲が全体に及んでしまって、場合によっては良くない。そこで、モジュールみたいな切り分けをして、ある範囲では書き換えをしても、その範囲だけで影響を及ぼす、そのほかの範囲には影響しない。そうしたことができると、人数の多い開発チームでも、わりと安心して大胆な変更ができそうな気がしています。今は、そうしたことを考えていますね」

楽天での大規模分散処理基盤プロジェクト

 この6月、Railsを活用している楽天では、まつもと氏をフェローとして楽天技術研究所に迎え入れている。同研究所は、楽天社内の研究開発組織として長期的戦略に基づいた研究開発を進めているのだが、そこで同氏を中心に進められているプロジェクトが大規模分散処理基盤だ。この大規模分散処理について同氏は、「実はあまり得意ではないのですが、世の中の一歩先未来のニーズは、そこにあることだけは間違いないので、やっておかなきゃいけないと思って取り組んでいます」と語っている。

 分散処理というと、ウェブサーバなりDBサーバなりを並べるといったハードウェアとしてのインフラに近いところを誰でも想起するだろう。ある大きなデータがあって、それを処理するのに1台のサーバでは現実的時間ではとても足らない。解決するには、たとえばデータセンターのようなたくさんのサーバがあるところにデータをバラバラにしてバラまいて1台あたりの処理時間を短くすることで終わらせるといった具合だ。同技研が進めている大規模分散処理もこうした基本アプローチを取っている。プロジェクトの目的を同氏はこう説明している。

 「ターゲットとしてはデータマイニングを考えています。楽天ですと、3000万人ぐらいの会員がいて、そのうちアクティブな会員も結構いて、その購買情報というのは、数テラバイトどころじゃないぐらいの大きなデータなんですが、正直全然手つかずなんです。もし、その購買情報をきちんと管理できれば、たとえば、“ある人の購買傾向はこれだから、この辺のものが売れるに違いない”とかリコメンデーションができるわけです。あるいは、“こういうような人たちに売れたので、あなたの店ではこういうキャンペーンをやってみたらどうですか”といったアドバイスでもできるわけです」

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]