/eiger

A research fork of cassandra that provides causal+ consistency, read-only transaction, and write-only transaction across all the servers in each datacenter.

Primary LanguageJavaApache License 2.0Apache-2.0

Eiger is a research prototype that provides stronger consistency
(causal consistency) and semantics (read- and write-only transactions)
for low-latency geo-replicated storage.  It is a fork of Cassandra.


Release Information
-------------------

The code is released in its current research-quality form.  I plan on
improving it in the future if time allows.  I stripped out the
parameterization of the Facebook workload for now, because I'm not
sure if I'm allowed to release it.


Paper Abstract
--------------

We present the first scalable, geo-replicated storage sys- tem that
guarantees low latency, offers a rich data model, and provides
“stronger” semantics. Namely, all client requests are satisfied in the
local datacenter in which they arise; the system efficiently supports
useful data model abstractions such as column families and counter
columns; and clients can access data in a causally-consistent fashion
with read-only and write-only transactional support, even for keys
spread across many servers.  The primary contributions of this work
are enabling scalable causal consistency for the complex column-
family data model, as well as novel, non-blocking al- gorithms for
both read-only and write-only transactions. Our evaluation shows that
our system, Eiger, achieves low latency (single-ms), has throughput
competitive with eventually-consistent and non-transactional Cassandra
(less than 7% overhead for one of Facebook’s real-world workloads),
and scales out to large clusters almost linearly (averaging 96%
increases up to 128 server clusters).


More Information
----------------

Our paper on Eiger has more information:
http://www.cs.princeton.edu/~wlloyd/papers/eiger-nsdi13.pdf


Requirements
------------
  * Java >= 1.6 (OpenJDK has been tested)


Getting started
---------------

Please see the documentation for Cassandra.