Skip to content
This repository has been archived by the owner on Dec 7, 2018. It is now read-only.

Prerequisites

tarcieri edited this page Apr 17, 2012 · 21 revisions

DCell requires 0MQ. On OS X, this is available through Homebrew by running:

brew install zeromq

DCell keeps the state of all global configuration data in a service it calls the "registry". DCell supports any of the following for use as registries:

  • Gossip (default): node connection info is tracked via a native gossip protocol. This adapter uses the same protocol to distribute data lazily to all connected nodes. It uses version vectors to determine update ordering. Be forewarned: when updates are found to be concurrent, one is arbitrarily dropped. Furthermore, this may not be a good choice if you have many nodes or a lot of global data, since each piece of data has a version vector (which contains a version for every peer node) at every node. This adapter is experimental.

  • Zookeeper: high-performance coordination service for distributed applications. It exposes common services such as naming, configuration management, synchronization, and group management. DCell uses it as a global node directory server and for storing global configuration data including actor addresses.

  • Redis: a persistent data structures server. It's simple and easy to use for development and prototyping, but lacks a good distribution story.

  • Cassandra: a distributed database with no single points of failure and can store huge amounts of data. Setup requires creating a keyspace and defining a single column family before staring DCell. The Cassandra backend defaults to a keyspace/CF both named "dcell". There are two rows, "nodes" and "globals" each with one column per entry.

You may pick any of these services to use as DCell's registry. The default is the gossip protocol.

To install a local copy of Redis on OS X with Homebrew, run:

brew install redis

To install a local copy Zookeeper for testing purposes, run:

rake zookeeper:install
rake zookeeper:start

To install a local copy Apache Cassandra for testing purposes, run:

rake cassandra:install
rake cassandra:start
Clone this wiki locally