Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: cberner/redb

4.1.0

19 Apr 21:15
@cberner cberner

Choose a tag to compare

This release contains a large number of bug fixes discovered by AI coding agents

  • Fix a bug where MultimapValue::len() and is_empty() returned stale counts after
    consuming entries via next_back().
  • Fix a bug where restore_savepoint() used in a non-Immediate durability transaction and when
    there are persistent savepoints newer than the one being restored, could fail
    with SavepointError::InvalidSavepoint, but the savepoint would actually be partially applied.
    The call now fails up front with SavepointError::ImmediateDurabilityRequired.
  • Fix a bug in restore_savepoint() where modifications made earlier in the transaction might
    not be reverted.
  • Fix a bug where renaming a table that was already modified in the same transaction could cause
    the database to become corrupted.
  • Fix a bug where calling restore_savepoint() after modifying a table in the same
    transaction could cause the table to become corrupted in a future transaction.
  • Fix a panic when delete_table() was called on a table that had been modified in the same
    transaction.
  • Fix a panic in restore_savepoint() when passed a Savepoint from a different Database.
    SavepointError::InvalidSavepoint is now returned instead.
  • Fix a bug where a transaction that created a persistent savepoint and was then
    aborted could cause the database file to grow excessively, until the Database was dropped.
  • Fix a panic in check_integrity() when called while another transaction is still alive.
    DatabaseError::TransactionInProgress is now returned instead.
  • Fix a bug where aborting a transaction that called restore_savepoint() with a savepoint
    when a newer savepoint existed could cause database space to be leaked.
  • Fix a bug where aborting a transaction that called restore_savepoint() would leave more
    recent savepoints invalid.
  • Improve performance when reading concurrently from multiple threads. Around 15% speedup on some benchmarks.
  • Optimize cache usage, and general write performance. Around 1.5x speedup on some benchmarks.
  • Optimize memory usage.
  • Other performance optimizations.
Assets 2
Loading
StudentWeis, jlucaso1, and maciektr reacted with hooray emoji hminy572, dpc, StudentWeis, jlucaso1, and 110CodingP reacted with heart emoji
6 people reacted

4.0.0

02 Apr 23:05
@cberner cberner

Choose a tag to compare

  • Implement Drop on AccessGuardMut and AccessGuardMutInPlace, which requires that these be dropped
    before the Table they borrow from.
    This fixes a critical bug where the accessor could outlive the Table, and be dropped after the
    transaction had already committed. This could cause data loss due to the data in the accessor
    being written out after the transaction had already completed.
  • Remove Legacy type. To migrate off the Legacy type, use the Legacy type in the 3.x release
    and copy the data to a table with plain tuples, before upgrading to the 4.x release.
Loading
StudentWeis, jlucaso1, zhangkaizhao, Hobr, and Kerollmops reacted with thumbs up emoji StudentWeis, hminy572, kstiehl, and Whth reacted with rocket emoji
8 people reacted

3.1.3

02 Apr 23:05
@cberner cberner

Choose a tag to compare

  • Fix a data loss bug which can occur when the guard returned from Table::get_mut() is dropped
    after the transaction has been committed.
  • Add a warning to Table::insert_reserve() indicating that it can cause data loss and recommending
    to upgrade to the 4.0.0 release.
Loading

3.1.2

01 Apr 20:46
@cberner cberner

Choose a tag to compare

  • Reduce memory usage of open databases
Loading
zhangkaizhao reacted with thumbs up emoji SaulDoesCode reacted with hooray emoji jlucaso1 reacted with heart emoji
3 people reacted

3.1.1

08 Mar 21:56
@cberner cberner

Choose a tag to compare

  • Fix panic which could occur when inserting into a table with fixed size keys when debug_assertions are enabled
  • Add additional information to the stats returned by cache_stats()
Loading

3.1.0

25 Sep 21:46
@cberner cberner

Choose a tag to compare

  • Implement std::error::Error for SetDurabilityError
  • Fix compilation error on various non-tier-1 platforms, such as wasm32-unknown
Loading
zhangkaizhao and jlucaso1 reacted with thumbs up emoji alexisfontaine, Kerollmops, 0x1za, and jlucaso1 reacted with heart emoji
5 people reacted

3.0.2

17 Sep 02:14
@cberner cberner

Choose a tag to compare

  • Fix performance issue where a transaction with a large number of writes would cause
    WriteTransaction::abort() and committing non-durable transactions to become slow
Loading

3.0.1

24 Aug 00:21
@cberner cberner

Choose a tag to compare

  • Fix correctness issue with range(), extract_from_if(), and retain_in(). If a RangeBounds
    with start > end was passed as an argument and start and end keys were stored in different
    internal pages in the database (i.e. a sufficient condition is that more than 4KiB of key-value
    pairs were between the two keys) then these methods would perform as if the argument had been
    start..
  • Fix performance regression, from redb 2.x, where Durability::None commits could become linearly
    slower during a series of transactions.
Loading

2.6.3

23 Aug 19:19
@cberner cberner

Choose a tag to compare

  • Fix correctness issue with range(), extract_from_if(), and retain_in(). If a RangeBounds
    with start > end was passed as an argument and start and end keys were stored in different
    internal pages in the database (i.e. a sufficient condition is that more than 4KiB of key-value
    pairs were between the two keys) then these methods would perform as if the argument had been
    start..
Loading

1.5.2

24 Aug 00:21
@cberner cberner

Choose a tag to compare

  • Fix correctness issue with range(), drain(), and drain_filter(). If a RangeBounds
    with start > end was passed as an argument and start and end keys were stored in different
    internal pages in the database (i.e. a sufficient condition is that more than 4KiB of key-value
    pairs were between the two keys) then these methods would perform as if the argument had been
    start..
Loading
Previous 1 3 4 5 6 7
Previous

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /