#data-store #serializable #time #ordered #built #on-disk #glommio

timestore

Fully serializable on-disk datastore for time data

4 releases

0.0.4 Apr 1, 2024
0.0.3 Mar 11, 2024
0.0.2 Mar 11, 2024
0.0.1 Mar 2, 2024

#200 in Database implementations

Download history 128/week @ 2024-02-26 24/week @ 2024-03-04 273/week @ 2024-03-11 11/week @ 2024-03-18 142/week @ 2024-04-01 152/week @ 2024-04-08 6/week @ 2024-04-15

303 downloads per month

MPL-2.0 license

28KB
686 lines

timestore

Fully serializable on-disk datastore for time data. Built on glommio (direct IO and io_uring).

Warning: this is mostly a sketch and it is designed for a very specific use case, it might not fit your use case.

Warning: it is not tested, and it is intended to run on only latest linux kernels and nvme ssds

Goals

It is a key-multivalue store so each key can have a set number of values.

Has absolutely no locking or synchronization(only uses atomic integers in some places) mechanism because it is written from scratch with ordered and append only workloads.

Iteration is super fast because everything is ordered and written to flat files.

All keys and offsets are kept in memory for reading so this will use a memory budget of num_keys * (values_per_key + 1) * 8 bytes.

Fully crash resistant.

Dependencies

~13MB
~275K SLoC