Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Distributed key-value storage a'la Amazon Dynamo
Erlang Python C JavaScript Shell
Tree: f89c2bf6d7

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


Ringo - Distributed key/value storage for immutable data

Ringo is an experimental, distributed, replicating key-value store based
on consistent hashing and immutable data. Unlike many general-purpose
databases, Ringo is designed for a specific use case: For archiving
small (less than 4KB) or medium-size data items (<100MB) in real-time
so that the data can survive K - 1 disk breaks, where K is the desired
number of replicas, without any downtime, in a manner that scales to
terabytes of data. In addition to storing, Ringo should be able to
retrieve individual or small sets of data items with low latencies
(<10ms) and provide a convenient on-disk format for bulk data access.

WARNING: Ringo should not be used yet as a primary storage for critical
data. Due to the fact that Ringo treats all data immutable, data
corruption or loss should be improbable. However, Ringo needs more
testing in real-world settings before we can be reasonably sure that it
works as advertised. To make this happen, feel free to try it out, adapt 
it to your needs, and report your experiences!


- Erlang R12B or newer
- Lighttpd (or other web server that supports SCGI)
- Python (optional, needed to run the test harness)


doc/         Documentation

ring/        Ringo backend
ring/bfile   High-performance replacement for the Erlang's standard file 
ring/src     Backend sources
ring/test    Test harness

ringogw/     Ringo web frontend
ringogw/src  Frontend sources
ringogw/web  Web interface
ringogw/py   Python interfaces for the Ringo frontend and for the Disco 
             map/reduce framework


cd ringo


Running the Test Harness

Something went wrong with that request. Please try again.