ROMAの概要(楽天の資料より引用)
ROMAの概要(楽天の資料より引用)
[画像のクリックで拡大表示]

 楽天は2009年8月27日,同社が独自に開発した分散処理基盤ソフトウエア「ROMA(Rakuten On-Memory Architecture)」を実サービスに導入した。ROMAは,同社の研究開発部門である楽天技術研究所が開発した,分散キー・バリュー型データストア(KVS)と呼ばれるソフトウエア。Rubyで記述されている。

 ROMAを導入したのは楽天トラベルの閲覧履歴機能「最近見た宿」。楽天では今回,同機能をモバイル機器に拡張。パソコンとモバイル機器両方のアクセス履歴を統合して表示させるために高速にデータを処理する必要があり,ROMAを利用したという。

 分散KVSとは,複数のサーバーに分散してデータを保持するための基盤ソフトウエア。分散KVSにはmemcachedやAmazonのDynamoなどがあるが,ROMAはそのRuby版である。ひとつのデータを複数のマシンに複製して持つことで障害時にデータが失われることを防ぐ。ROMAが稼働するサーバー同士はP2Pで自律的に連携。障害が発生したマシンは自動的に切り離される。稼働中にマシンを追加し,処理能力を増強することも可能。ROMAはRubyのほか,Java,PHPからも利用することができ,「最近見た宿」はJavaで記述されている。

 楽天はRubyの作者であるまつもとゆきひろ氏を楽天技術研究所のフェローとして招聘し,共同研究を行ってきた。ROMAはその成果のひとつ。楽天技術研究所ではまつもと氏との共同研究として,ROMAのほかにも,大量のデータをネットワーク上に分散したマシンで処理するフレームワーク「fairy」の開発を進めている。またROMAとfairyはオープンソース・ソフトウエアとして公開する方針を表明している。

◎関連リンク
The Overall Architecture of ROMA(楽天技術研究所 西澤無我氏による講演資料)