楽天製。Rubyベースの分散型キー/バリューDB「ROMA」
ROMAはRuby製のオープンソース・ソフトウェア。Webシステムで一般的に使われているRDBMSに対してここ一、二年で注目を集めているのがキー/バリュー型のデータベースシステムだ。シンプルに使えてスケールしやすく、大型のWebシステムでは導入が当たり前になりつつある。
そんなキー/バリュー型データベースとして有名なのはmemcachedやMogileFSなどが知られている。そこに独自のデータベースを開発したのが楽天だ。Ruby開発者であるまつもと氏をフェローに迎えて開発されたのがROMAになる。もちろんRubyで開発されておりごく手軽に利用できる。
ROMAはRuby1.9を使って動作する。インストールは簡単にでき、複数のインスタンスを簡単に立ち上げられる。そしてクライアントからはmemcachedと同様に接続が可能で、telnetでも接続することが可能だ。P2Pをもとして分散システムに対応しているのでスケールしやすいのが特徴だ。
格納されるデータは自動的に複製が行われるので耐障害性が強い。障害が発生したマシンを自動で発見し、切り離す機能もある。新しいマシンを追加するのも簡単だ。さらにプラグイン機能によってROMAの中に手を入れることもなく、機能を拡張することもできる。
サーバとクライアントはネットワーク接続なので疎結合だ。そのためROMAがRubyであることに大きな影響はなさそうだ。開発言語がRubyか否かによらず、様々な場面で導入が検討できるだろう。キャッシュはもちろん公開されても問題ないようなデータ、頻繁にアクセスの発生するデータなどRDBMSが得意としないような場面でどんどん活用できるはずだ。
# 2009年10月30日。誤字修正
roma-prj - Project Hosting on Google Code