Help us understand the problem. What is going on with this article?

ROMAとは

More than 3 years have passed since last update.

ROMAとは

ROMA(Ruby/Rakuten On-Memory Architecture)とは、RIT(楽天技術研究所)がまつもとゆきひろ氏(matz)と共同開発したRuby製分散型KVS(NOSQL)であり、現在はOSSとして公開されている。
https://github.com/roma/roma
logo.png

特徴

Pure P2P architecture

  • 通信方式にPure P2Pを採用しており、いわゆるmaster/slaveに分かれていないので耐障害性に優れる
  • アクセスが集中する時など、任意のタイミングでスケールアウトすることが容易である
    p2p.png

consistent Hashing and Virtual Nodes

  • コンシステントハッシュ法とvirtual nodesを用いてデータ分散を行っている
    consistencth.png

Data replication

  • 冗長度は通常2で、任意で変更可能
  • 複数サーバで構成していて、かつ1サーバ内に複数nodeが立ち上がっている際には他サーバへのデータ振り分けを優先する
  • 万一クラスター内のサーバが1台落ちたとしても、データの読み書きを問題なく行うことが出来る

Auto recovering system

  • 障害時に生き残ったサーバ群でデータの再複製を自動で行い冗長性を保つ機能を持つ AUTO_RECOVERY.png

cluster replication system(hot standby)

  • 上記のrecovering systemとは別にclusterのreplicationを用意してhot stanby状態で待機させておくことが可能
  • 障害時にAPIのアクセス先を切り替えるだけで復旧が可能になる
    cluster_replication.png

plug-in Architecture

  • コマンドや各種機能をplugin化することで本体のコアの処理と切り分けているため、仮にいらない機能があれば外したり、欲しい機能がればRubyのソースを少し書いてプラグインとして読み込むことで簡単に機能を追加することが可能である

memcached compatible protocol

  • 導入や移行のコストを減らすためにmemcachedプロトコルとの互換性を持つ

multi storage

storageを要件にあわせて選択することが可能
物理ファイルに保存しておくことも、memcachedのようにメモリのみを選択することも可能
storage.png

データタイプ

ROMAは分類的にはP2P型のKVSとなります

  マスタ型 P2P型 イネーブラ型
オンメモリタイプ オンディスクタイプ
KVS型 Hibari Dynamo
Voldemort
Riak
ROMA

Memcashed
Redis
Scalaris 

TokyoCabinet/
Tyrant 
カラム型 Bigtable
HBase
HyperTable
Cassandra    
グラフ型 Neo4j InfiniteGraph    
ドキュメント型 MongoDB
CouchDB 
     

その他の関連Tool

mainのUnitとは別に各種クライアントやGUI toolを持つ
gla1.png

関連URL

HP : http://roma-kvs.org/
Github : https://github.com/roma

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした