Kayak is a prototype for proactive-adaptive arbitration between shipping compute and shipping data. Kayak is a fork of Splinter.
To run Kayak on CloudLab using xl170
machine, follow these steps:
- Instantiate a CloudLab cluster using the python profile
cloudlab_profile.py
. This should provide a cluster of bare-metal machines running Ubuntu 18.04 with kernel 4.15.0-147 and gcc 7.5.0. - Install MLNX OFED driver. For compatibility, check here. The LTS version is recommended.
- Run the provided
setup.sh
. This will install DPDK as well as the latest version of Rust. make
.- Create
splinter/client.toml
for client configuration anddb/server.toml
for server configuration.
You can also refer to the README.md of splinter here or here.
To run the YCSB-T workload:
Inside splinter/
, run
sudo env RUST_LOG=debug LD_LIBRARY_PATH=../net/target/native ./target/release/ycsb-t
To run the synthetic workload:
Inside splinter/
, run
sudo env RUST_LOG=debug LD_LIBRARY_PATH=../net/target/native ./target/release/pushback
To run the YCSB-T workload:
Inside splinter/
, run
sudo env RUST_LOG=debug LD_LIBRARY_PATH=../net/target/native ./target/release/ycsb-t-kayak
To run the synthetic workload:
Inside splinter/
, run
sudo env RUST_LOG=debug LD_LIBRARY_PATH=../net/target/native ./target/release/pushback-kayak
please consider to cite our paper if you use the code or data in your research project.
@inproceedings{kayak-nsdi21,
author = {Jie You and Jingfeng Wu and Xin Jin and Mosharaf Chowdhury},
booktitle = {USENIX NSDI},
title = {Ship Compute or Ship Data? Why Not Both?},
year = {2021}
}
Thanks to Chinmay Kulkarni, Ankit Bhardwaj and Ryan Stutsman for the Splinter repo.
Jie You ([email protected])