pile
- a simple and fast append-only data store
Design goals
- Efficient adding of big chunks of data.
- A user should be able to copy the storage data (for example, over the network) while still being able to use the database for both reads and writes.
- The storage should have a minimal dependency footprint.
Usage guide
Example
use Database;
let db = new.unwrap;
let value = b"some data";
db.put.unwrap;
Transferring the data
- Get the raw data by using
Database::snapshot()
. - Copy it somewhere.
- Create the root direcotry of the data store, create a file named
data
in it and add all snapshot data into it. - Just start using the database: it will verify correctness and rebuild all indexes.
Notes
Values are accessible only by their sequential numbers. You will need an external index if you want any other kind of keys.