SplinterDB is a key-value store designed for high performance on fast storage devices.
See this talk at the CMU Database Seminar and this paper:
Alexander Conway, Abhishek Gupta, Vijay Chidambaram, Martin Farach-Colton, Richard P. Spillane, Amy Tai, Rob Johnson: SplinterDB: Closing the Bandwidth Gap for NVMe Key-Value Stores. USENIX Annual Technical Conference 2020: 49-63
SplinterDB is a library intended to be embedded within another program. See Usage for a guide on how to integrate SplinterDB into an application.
SplinterDB is provided as-is and is not recommended for use in production until version 1.0. See Limitations for details.
See Build for instructions on building SplinterDB from source.
See Documentation for preliminary documentation.
Build the inspection utility with make tools (also included in make), then run:
build/release/bin/splinter_inspect space database.dbThe command opens the image read-only and reports its geometry, allocated/free extents and bytes, and reserved metadata space. Stop the database before inspection. Allocation totals require a cleanly closed image; when its allocation map needs recovery, geometry is still reported and the command exits with status
- Counts include unused pages within allocated extents, and describe SplinterDB
allocation rather than filesystem block usage. Page-type statistics are not
stored in the image. Use
--helpfor usage and exit statuses.
make benchmarks builds a concurrent random-insert and random-point-query
benchmark with independently sampled throughput, per-thread rates, and optional
internal task traces. See the benchmark instructions
for the 8-inserter/8-reader workload, time-series plots, and configuration options.
