Releases: cberner/redb
Releases · cberner/redb
0.6.0
- Return
Err
instead of panic'ing when opening a database file with an incompatible file format version - Many optimizations to the file format, and progress toward stabilizing it
- Fix race between read & write transactions, which could cause reads to return corrupted data
- Better document the different
WriteStrategy
s - Fix panic when recovering a database that was uncleanly shutdown, which had been created with
WriteStrategy::Checksum
(which is the default) - Fix panic when using
insert_reserve()
in certain cases
0.5.0
Major features
Optimize MultimapTable
storage format to use O(k * log(n_k) + v * log(n_v / n_k))
space instead of O(k * log(n_k + n_v) + v * log(n_k + n_v))
space, where k is the size of the stored keys, v is the size of the stored values, n_k is the number of stored keys, n_v is the number of stored values
Minor features
- Add support for the unit type,
()
, as a value - Change
MultimapTable::range
to return an iterator of key-value-collection pairs, instead of key-value pairs - Automatically abort
WriteTransaction
on drop - Return an error when attempting to open the same database file for writing in multiple locations, concurrently
Fixes
- Fix compilation errors for 32bit x86 targets
- More robust handling of fsync failures
0.4.0
- Add single phase with checksum commit strategy. This is now the default and reduces commit latency by ~2x. For more details, see the design doc and blog post. The previous behavior is available via
WriteStrategy::Throughput
, and can have better performance when writing a large number of bytes per transaction.
0.3.1
0.3.0
0.2.0
- Add information log messages which can be enabled with the
logging
feature - Add support for
[u8; N]
type - Optimize storage of fixed width types. The value length is no longer stored, which reduces storage space by ~50% for
u64
,
2x foru32
, and also improves performance.