- RDMA-capable hardware, RDMA drivers (system-dependent)
- cmake
Run git submodule update --init --recursive, then build the following dependencies:
To build Sift:
mkdir buildcd buildcmake ..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 PORTfor each node. Create a memory node config fileservers.configin 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.