楽天、Rubyベースの独自大規模分散処理基盤ソフトをサービスに導入
楽天は2009年8月27日、独自開発の大規模分散処理ソフトウェア「ROMA(Rakuten On-Memory Architecture)」を「楽天トラベル」の閲覧履歴機能「最近見た宿」に導入、本格的に運用開始した。Rubyで記述してあり、高速処理に優れるという。
ROMAは、「分散キー・バリュー型データストア」(分散KVS)を呼ばれるソフトウェアで、研究部門の楽天技術研究所が開発した。複数のサーバ(ノード)を仮想的に1つのデータストアのように扱い、大量のデータを高速処理できる。また、ノード間でデータを複製・保持することで耐障害性を高められるという。
ROMAノード間はP2Pで自律的に稼働。稼働中のノード追加や障害が発生したノードの切り離しが可能で、拡張性や保守性にも優れる。Ruby開発者で楽天技術研究所フェローのまつもとゆきひろ氏との共同研究の成果のひとつ。Rubyの拡張ライブラリとして実装した。
「最近見た宿」は、モバイルとPCの間で閲覧した履歴を引き継いで、シームレスに表示させる機能で、帰宅途中にモバイルで見た宿泊施設に、帰宅後、自宅のPCから予約するといったことが可能になる。高速にデータ処理する必要からROMAを採用した。
なお、ROMAのソースコードは現在のところ公開されていないが、将来的にはオープンソース化する方針とのこと。
楽天技術研究所
http://rit.rakuten.co.jp/
楽天トラベル
http://travel.rakuten.co.jp/