Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Storage servers. These implement most of the RAMCloud functionality. A RAMCloud server typically contains a master, which manages local DRAM to store portions of the RAMCloud key-value store, and a backup, which manages redundant information stored on disk or flash to recover from crashes. You must start up a storage server on each server whose memory will be incorporated into the RAMCloud cluster. A given server can only manage a single backup device; if you want to use multiple backup devices on a single node, you'll start one server with a master and backup, plus additional servers that only contain the backup component.
  2. Coordinator. At any given time there is one machine serving as cluster coordinator. This machine manages overall cluster configuration information (such as which storage servers handle which tablets), and it coordinates recovery when storage servers crash. You will typically start 2-3 instances of the coordinator. At a given time, only one of them is active, but if it crashes one of the others will immediately take over for it. You can run a cluster with only a single coordinator, but if this coordinator a crashes the cluster will be unavailable until you restart this coordinator or start a new one someplace else.
  3. External storage (ZooKeeper or LogCabin). The coordinator stores top-level cluster configuration information (such as the set of servers currently participating in the cluster) in an external storage system. RAMCloud can support different external storage systems; right now ZooKeeper and LogCabin are supported. Thus, you will need to start a ZooKeeper or LogCabin cluster in order to run RAMCloud. You can run a RAMCloud cluster without an external storage system, but if the coordinator crashes then all of the data stored in the cluster will be lost. Using LogCabin currently requires building with 'make LOGCABIN=yes', and you'll previously need the LogCabin submodule checked out ('git submodule update --init --recursive') and compiled ('make logcabin' or 'cd logcabin; scons').

Starting ZooKeeper or LogCabin

...