Closed tqwewe closed 1 week ago
Ideally, I'd like to flush the database every 10 seconds or so, as the data being stored can be recomputed and isn't super important.
Note that you can implement this using the public API: Have a thread/task run something like db.begin_write()?.commit()?;
every 10 seconds or so to flush the non-durable transactions using a single durable transaction.
Yes, this is one of the limitations of redb. Performing a large number of Durability::None
commits, sequentially, is not recommended
When inserting data with the
Durability::None
in a commit, the database file grows extremely large compared to using something likeImmediate
.Ideally, I'd like to flush the database every 10 seconds or so, as the data being stored can be recomputed and isn't super important.
Inserting a
(&str, Vec<u64>)
with 100,000 u64's (being inserted one at a time) results in the file growing to dozens of GB before I need to forcefully stop my app. However doing so with theDurability
set toImmediate
is just a few MB.