This repository contains the source code for our demo submission "Snapcase - Regain Control over Your Predictions with Low-Latency Machine Unlearning" to VLDB'24.
- Make sure you have a recent version of Rust installed.
- Clone this repository locally via
git clone https://github.com/amsterdata/snapcase-demo
and change into thesnapcase-demo
folder - Download the prebuilt top-k index and the purchase database from Google Drive. The
__instacart-index.bin
file must be placed directly in thesnapcase-demo
folder, and the*.parquet
files must be placed in thedatasets/instacart/
subfolder. - Start the demo with the following command:
cargo run --release --bin service
- You should see some console output from DuckDB and Differential Dataflow, after which the demo will be served at http://localhost:8080 , which you can open in a browser
We provide a few pointers for researchers interested in understanding the source code:
- Our implementation of the TIFU model for next-basket recommendation in Differential Dataflow is available in the src/tifuknn folder.
- Our data structure and algorithm for efficiently maintaining a top-k aggregation over the result of a sparse matrix multiplication is available in the src/caboose folder.
- The code to coordinate the incremental view maintenance of the recommendation model is available in the src/materialised subfolder.
This demonstration uses icons from the Flaticon platform.