A low-latency, extensible, multi-tenant key-value store.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
db Server side tweaks Sep 27, 2018
ext Server side tweaks Sep 27, 2018
misc Update vim configuration. Aug 22, 2018
sandstorm Implemented multiget() on DB interface Sep 24, 2018
scripts Script to run new Figure 10 Sep 27, 2018
.gitignore Simplify setup script. Apr 12, 2018
Makefile Server side tweaks Sep 27, 2018
README.md Add switches to setup.py allowing for easy configuration. Aug 22, 2018



A multi-tenant key-value store into which untrusted extensions can be pushed down at run-time

Running Sandstorm on CloudLab

To run Sandstorm on CloudLab, do the following

  1. Instantiate an experiment using the sandstorm-cluster profile under the sandstorm project (you will need to join the project first). When asked, allocate two machines for the experiment.
  2. Once the experiment has begun, clone this repository on both the allocated machines.
  3. Next, run scripts/setup.py --full from the root directory on both machines. This script installs Rust, DPDK, and binds a 10 GbE network card to DPDK. It saves the PCI and MAC addresses of the bound NIC to a file called nic_info.
  4. Create a toml file (db/server.toml) for the server on one machine, and a toml file (db/client.toml) for the client on the other machine. There are example files under db.
  5. Update the toml files with the correct MAC and PCI addresses (generated during Step 3).
  6. To run the server, run make, followed by `sudo scripts/run-server' from the root directory.
  7. To run the ycsb client, run make, followed by sudo scripts/run-ycsb from the root directory.