ROMAはRuby製のオープンソース・ソフトウェア。Webシステムで一般的に使われているRDBMSに対してここ一、二年で注目を集めているのがキー/バリュー型のデータベースシステムだ。シンプルに使えてスケールしやすく、大型のWebシステムでは導入が当たり前になりつつある。

ピクチャ 278.png

そんなキー/バリュー型データベースとして有名なのはmemcachedやMogileFSなどが知られている。そこに独自のデータベースを開発したのが楽天だ。Ruby開発者であるまつもと氏をフェローに迎えて開発されたのがROMAになる。もちろんRubyで開発されておりごく手軽に利用できる。

ROMAはRuby1.9を使って動作する。インストールは簡単にでき、複数のインスタンスを簡単に立ち上げられる。そしてクライアントからはmemcachedと同様に接続が可能で、telnetでも接続することが可能だ。P2Pをもとして分散システムに対応しているのでスケールしやすいのが特徴だ。

ピクチャ 276.png

格納されるデータは自動的に複製が行われるので耐障害性が強い。障害が発生したマシンを自動で発見し、切り離す機能もある。新しいマシンを追加するのも簡単だ。さらにプラグイン機能によってROMAの中に手を入れることもなく、機能を拡張することもできる。

サーバとクライアントはネットワーク接続なので疎結合だ。そのためROMAがRubyであることに大きな影響はなさそうだ。開発言語がRubyか否かによらず、様々な場面で導入が検討できるだろう。キャッシュはもちろん公開されても問題ないようなデータ、頻繁にアクセスの発生するデータなどRDBMSが得意としないような場面でどんどん活用できるはずだ。

# 2009年10月30日。誤字修正

 

roma-prj - Project Hosting on Google Code

 http://code.google.com/p/roma-prj/