Skip to content

Releases: cberner/redb

0.8.0

19 Oct 04:27
Compare
Choose a tag to compare
  • Performance improvements for database files that are too large to fit in RAM
  • Fix deadlock in concurrent calls to savepoint() and restore_savepoint()
  • Fix crash if restore_savepoint() failed
  • Move savepoint() and restore_savepoint() methods to WriteTransaction
  • Implement Iterator for the types returned from range() and remove_all()

0.7.0

26 Sep 00:32
Compare
Choose a tag to compare
  • Add support for Windows
  • Add Database::set_write_strategy which allows the WriteStrategy of the database to be changed after creation
  • Make Database::begin_write block, instead of panic'ing, if there is another write already in progress
  • Add Database::savepoint and Database::restore_savepoint which can be used to snapshot and rollback the database
  • Rename DatabaseBuilder to Builder
  • Performance optimizations for large databases

0.6.1

11 Sep 23:27
Compare
Choose a tag to compare
  • Fix crash when Database::open() was called on a database that had been created with WriteStrategy::TwoPhase
  • Change default region size on 32bit platforms to 4GiB

0.6.0

11 Sep 19:36
Compare
Choose a tag to compare
  • 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 WriteStrategys
  • 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

07 Aug 03:34
Compare
Choose a tag to compare

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

27 Jul 01:43
Compare
Choose a tag to compare
  • 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

21 Jul 05:03
Compare
Choose a tag to compare
  • Fix a bug where re-opening a Table during a WriteTransaction lead to stale results being read

0.3.0

20 Jul 01:35
Compare
Choose a tag to compare
  • Fix a serious data corruption issue that caused many write operations to corrupt the database
  • Make redb region size configurable
  • Implement garbage collection of empty regions
  • Fixes and optimizations to make the file format more efficient

0.2.0

11 Jun 15:19
Compare
Choose a tag to compare
  • 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 for u32, and also improves performance.

0.1.2

08 May 22:26
Compare
Choose a tag to compare
  • Change insert() to return an Option<V> with the previous value, instead of ()