"Framework" for building a decentralized gossip based distributed system with accrual failure detection
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Elastica is an implementation of: The Phi Accrual Failure Detector and Amazons paper on Gossip with inspiration from Lookup data in p2p system

(A tweaked Chord (DHT) implementation where |finger table| = |cluster|)

Suitable if you are building a system that is...
* Elastic  -- Add new machines in runtime (with no downtime)
* Decentralized  -- Every node in the cluster is identical.  
* Fault tolerant  -- Replace failed nodes with no downtime. 
* Self-stabilizing  -- The system will end up in a correct state no matter what state it is initialized with.


* No way to explicitly decomission a node

* Only support for one seed

* Two tcp connections between each pair of nodes

* Simple rpc/messaging mechanism
* Inconsistent implementation of 'cumulative distribution function' for Exponential Distribution  
   (see https://issues.apache.org/jira/browse/CASSANDRA-2597)
* A generic Partitioner (keyspace=[0,10], A=[0,3], B=[4,7], C=[8,10]) (too key value specific?)
   (proposal: - consistent way to map a host into a key range and vice versa (get_range(host), get_node(range)). 
              - auto adjust if node goes up/down. 
              - auto bootstrap (half the range of the range with most load)     
              - redundancy/replication?
              - $1
* Distinguish between "address I tell people about" and "address I bind to (think ec2, nat)
  currently "solved" by binding to ip and tell about "external" ip

* Tornado 1.2.1 (http://www.tornadoweb.org/)
* psutil (http://code.google.com/p/psutil/)

Licensed under Apache version 2