Index > Introduction
はじめに
ROMAは分散キーバリューストアのためのデータストアシステムの一つです。完全に分散された分散システムで、複数のマシーン上でノードと呼ばれる複数のプロセスからなります。分散ハッシュテーブルのような純粋なP2Pアーキテクチャーに基づいており、従って高可用性とスケーラビリティを提供します。
ROMAはRubyで書かれています。しかしながら、ROMAにアクセスするには次の選択が可能です。
- RubyとJavaのクライアントライブラリが利用可能です。
- ROMAプロトコルはmemcachedのテキストベースのものと互換性があり、どのmemcchedクライアントもROMAとやりとりをすることができます。
重要な特徴
- 耐障害性
- ROMAには単一障害点がありません。
- データはROMAに保存され自動的にリプリケートされます。複製の数はユーザによって設定されます。
- ROMAは自動的に利用できないノード(プロセス)を検知し、そのノードをROMAのリングから切り離します。
- 高拡張性
- 新しいノードは動的にROMAに参加させることができます。
- ROMAへの参加の方法は単純に新しいROMAノード(プロセス)を起動するだけです。
- ROMAに新しいノードを追加することで、ストレージサイズとスループットが線形増加することになります。
- Memcached プロトコル
- ROMAはmemcached のテキストベースの通信プロトコルを採用しています。
- これはどのようなmemcachedクライアントライブラリとtelnetクライアントがROMAとやり取りができることを意味します。This
- プラグイン構造
- ROMAは機能の拡張のために、プラグイン構造を持っています。
- プラグインを準備することでソースコードを変更することなしにROMAを拡張することができます。