このページの本文へ

2008年06月20日更新

楽天×まつもとゆきひろで世界はどう変わる? 中編

文●塩田紳二

楽天技術研究所の代表である森正弥氏とRuby開発者まつもとゆきひろ氏インタビュー前編では、楽天でのRuby導入とROMAおよびfairy開発プロジェクトの始動について紹介した。今回の中編では、6月21日のRuby会議の講演でも発表される予定であるROMAとfairyの仕組みを中心として両氏のインタビューをお送りする。

ROMA
Ruby会議で使用されるROMA資料

Ruby会議で発表予定のROMAの特徴

―――Ruby会議で「デモ」を行なうという話を聞きました。

森正弥氏
楽天(株)楽天技術研究所 森正弥さん(33歳)
外資系コンサルティング会社に8年3カ月在籍後、2006年9月に楽天株式会社楽天技術研究所へ最初の専任メンバーとして入社

森:おっと(笑)

まつもと:一応、Ruby会議では「このようなことをやっています」ということを話すつもりです。でも、正直言ってみなさんの前で見せるようなものはあまりないですよ。

森:私たちが作っているのは、例えば画像処理技術のようにビジュアルがはっきりあるものではなくて、目に見えないものです。それなので、Ruby会議ではプレゼンテーションでコンセプトを説明することにしました。ROMAはコンピュータが環状につながっているイメージを、ローマのコロッセウムになぞらえて見せていく予定です。ROMAはデータを分散して持つのが特徴で、データを格納しているサーバの両隣のサーバも同じデータを持っています。

 そうすることで、1台のサーバが故障してもデータはなくならないし、ユーザはデータがどのサーバに入っているのかを気にしなくてもいいのです。さらに「ホットスケール」といって、サーバを簡単に追加できる仕組みにもなっています。また、クラッシュしたサーバがあれば、そのサーバを切り離して、残ったサーバで円を作り直す「フェイルオーバー」もありす。

 データはメモリ上にありますが、「永続化」といって、定期的にハードディスク側にも同じデータを書いておきます。そうすることでクラッシュしても、ファイルからデータを復旧が可能です。現在は、フェイルオーバーと永続化の部分を開発しているところで、まだいろいろな問題がありますね。

まつもと:サーバが壊れるとしても、どのタイミングで壊れるのかは事前に予測できないもの。ですからいろいろなタイミングでわざとサーバを落としたりして、テストをしているところです。

―――現在ROMAの開発はどの段階に来ていると言えますか?

森:ROMAの基本的な設計は終了していて、プロトタイプもできています。現在の設計に基づいて実装を進めている段階です。特に永続化が難しくて……。永続化を強化していくと、今度はパフォーマンスが落ちてしまいます。データをコピーして持っているという特徴は、同じデータが複数のサーバ上にあるということ。しかも、それぞれのサーバがクラッシュするタイミングは違うこともあり得ます。そうしたことから、永続化を使って全体を復旧する処理というのは、設定や実装が複雑になるのです。

まつもと:ROMAはデモも動いていますよ。しかしキャラクタ(コード)でログが表示されるだけ。私たちはそれを見てROMAが動いていることが分かるのですが……。ほかの人は何が何だか分からないでしょうね(笑)。

1 2 3 4
キャリア連載バックナンバー
キャリア・ピックアップ

記事一覧へ >>

採用を勝ち取る転職必勝マニュアルバナー

おすすめ連載

組み込み系エンジニア特集

今さら聞けないIT英語

エンジニアライフ

資格試験対策

プロマネ・スキル

ビジネススキル

独立起業事例集

キャリア・コーナー紹介