Index > Introduction
Introduction
ROMA is one of the data storing system for distributed key-value stores. It is a completely decentralized distributed system that consists of multiple processes, called nodes, on several machines. It is based on pure P2P architecture like a distributed hash table, thus it provides high availability and scalability.
ROMA is written in Ruby. However, following choices are available to access to ROMA.
- Client libraries of Ruby and Java are available.
- ROMA protocol is compatible with memcached text-based one so that, any memcached client libraries allows users to interact with ROMA.
Key Features
- Fault-Toralance
- There is no single point of failure in ROMA.
- The data stored in ROMA is replicated automatically. The number of replicas is configured by the users.
- ROMA automatically detects disable nodes (process) and then separates the node from the ROMA ring.
- High Scalability
- New nodes can be joined to ROMA dynamically.
- The procedure to join to ROMA is just lunching new ROMA nodes (processes).
- Joining new nodes to ROMA results in linearly-increasing its storage size and though put
- Memcached Protocol
- ROMA employs memcached text-based communication protocol.
- This means any memcached client libraries and telnet client are able to interact with ROMA
- Plug-in Architecture
- ROMA has plug-in architecture to be extended its function.
- It is possible to extend ROMA without changing its source code by preparing plug-ins