- RDMA-capable hardware, RDMA drivers (system-dependent)
- cmake
Run git submodule update --init --recursive
, then build the following dependencies:
To build Sift:
mkdir build
cd build
cmake ..
make
Sift's configuration is set at compile-time. You can configure both the replicated memory and key-value systems, including various parameters and flags, in common/common.h
.
- Start the memory nodes by running
build/rdma_server PORT
for each node. Create a memory node config fileservers.config
in the top-level directory which contains, for each memory node, a line of the formADDRESS PORT
. - Start the key-value store server by running
build/kv_remote_server LISTEN_ADDR LISTEN_PORT SERVER_ID
. - Start the default key-value store client by running
build/kv_remote_client SERVER_ADDR SERVER_PORT NUM_OPS READ_PROB
, where READ_PROB is in the range [0, 100]. Note that clients need not run on RDMA-capable machines.
To run Sift with erasure codes, perform the same steps in SiftEC/, which is a fork of Sift that uses the cm256cc library.