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

Prerequisites

Robert Jackson edited this page May 3, 2013 · 21 revisions

DCell requires 0MQ, and uses the ffi-rzmq gem to bind to it.

On OS X, the 0MQ native libraries are 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:

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

  • 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.

  • 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.

  • Moneta: an abstraction across various key/value stores.

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