SuRF is a fast and compact filter that provides exact-match filtering, range filtering, and approximate range counts. This is the source code for our SIGMOD best paper. We also host a demo website. The RocksDB experiments with SuRF can be found here.
sudo apt-get install build-essential cmake libgtest.dev cd /usr/src/gtest sudo cmake CMakeLists.txt sudo make sudo cp *.a /usr/lib git submodule init git submodule update mkdir build cd build cmake .. make -j A simple example can be found here. To run the example:
g++ -mpopcnt -std=c++11 simple_example.cpp ./a.out Note that the key list passed to the SuRF constructor must be SORTED.
make test cd bench/workload_gen bash ycsb_download.sh cd bench/workload_gen bash gen_workload.sh You must provide your own email list to generate email-key workloads.
cd bench bash run.sh Note that run.sh only includes several representative runs. Refer to bench/workload.cpp, bench/workload_multi_thread.cpp and bench/workload_arf.cpp for more experiment configurations.
Copyright 2018, Carnegie Mellon University
Licensed under the Apache License.