From the README:
FileDB is a Zig-implementation of Bitcask by Riak paper.
- FileDB stores record metadata in a log-structured hashtable and parallely keeps 1 disk file open for inserting records in append-only mode. On restarts or
MAX_FILE_REACHED
, the disk file is rotated and all the oldfiles are kept open for reading only.
- A compaction process running every
config.compactionInterval
seconds, reads all the disk files and combines them into one file while updating the metadata hashtable.
- A sync process syncs the open disk files once every
config.syncInterval
. Sync also can be done on every request if config.alwaysFsync
is True.
Read about internals in-depth at FileDb.