mvSQLite is a distributed, MVCC SQLite running on FoundationDB, modified by V-Sekai (https://github.com/V-Sekai). It offers full feature-set from SQLite, time travel, lock-free scalable reads and writes, and more. You can use LD_PRELOAD
or a patched libsqlite3.so
to integrate mvSQLite into your existing apps.
- Install FoundationDB:
wget https://github.com/apple/foundationdb/releases/download/7.1.15/foundationdb-clients_7.1.15-1_amd64.deb
sudo dpkg -i foundationdb-clients_7.1.15-1_amd64.deb
wget https://github.com/apple/foundationdb/releases/download/7.1.15/foundationdb-server_7.1.15-1_amd64.deb
sudo dpkg -i foundationdb-server_7.1.15-1_amd64.deb
- Build, run
mvstore
, create a namespace with the admin API, buildlibsqlite3
and thesqlite3
CLI, set environment variables, and run the shell. Detailed instructions can be found in the wiki.
cargo build --release -p mvstore
RUST_LOG=info ./mvstore \
--data-plane 127.0.0.1:7000 \
--admin-api 127.0.0.1:7001 \
--metadata-prefix mvstore \
--raw-data-prefix m
Create a namespace with the admin API:
curl http://localhost:7001/api/create_namespace -i -d '{"key":"test"}'
- To run
sqlite3
. Buildlibsqlite3
and thesqlite3
CLI: (note that a custom build is only needed here because thesqlite3
binary shipped on most systems are statically linked tolibsqlite3
andLD_PRELOAD
don't work)
cargo build --release -p mvsqlite
cd mvsqlite-sqlite3
make build-patched-sqlite3
./sqlite3
mvSQLite can be built with the standard Rust toolchain. More details are available in the wiki.