Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): bump redb from 2.1.0 to 2.3.0 #397

Merged
merged 1 commit into from
Dec 25, 2024

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Dec 16, 2024

Bumps redb from 2.1.0 to 2.3.0.

Release notes

Sourced from redb's releases.

2.3.0

  • Add WriteTransaction::set_two_phase_commit()
  • Add WriteTransaction::set_quick_repair() which enables a faster repair mechanism at the cost of slower transaction commits
  • Durability::Paranoid is now deprecated. Use set_two_phase_commit(true) instead
  • Fix various bugs when repairing the database after an unclean shutdown. These could result in panics, leaked space in the database file, or database corruption

2.2.0

  • Implement TableHandle for ReadOnlyTable
  • Fix bug in write cache, which caused pages to be evicted randomly. Pages are now evicted based on how recently they have been accessed

2.1.4

  • Optimize first() and last() to be almost 2x faster
  • Improve in-memory cache algorithm to resolve edge cases where certain pages could become uncacheable under cache pressure
  • Fix bug in read cache where the read cache could become disabled. This was likely to occur in multithreaded workloads when the read cache was smaller than the database file. This bug lead to 5-10x performance degradations for some workloads

2.1.3

  • Significant performance optimizations to compact()
  • Fix some additional cases where compact() did not fully compact the database
  • Fix a panic that could occur in commit() or abort() after an IO error. StorageError::PreviousIo is now returned
  • Fix a potential panic that could occur when repairing the database after a crash

2.1.2

Major fixes:

  • Fix leak of database space that could occur when calling restore_savepoint()
  • Fix leak of database space when calling delete_multimap_table()
  • Fix database corruption which could occur when restoring a savepoint. This edge case is rare, and could only occur if the database was less than approximately 4TiB when the savepoint was created, and greater than 4TiB when the savepoint was restored
  • Fix edge case where a transient I/O error that occurred during transaction commit, but then did not reoccur when the Database was dropped, could cause database corruption

Important: If your application has called restore_savepoint(), delete_multimap_table(), or you suspect it may have experienced a transient I/O error during transaction commit. It is recommended that you run check_integrity() after upgrading to this version. This will both detect corruption and clean up any leaked space.

Other changes and fixes:

  • Optimize page freeing to reduce the size of the database file
  • Fix several cases where check_integrity() would return Ok(false) instead of Ok(true)
  • Fix some cases where compact() did not fully compact the database
  • Make the metadata overhead returned by WriteTransaction::stats() more accurate
  • Return StorageError::ValueTooLarge when a key-value pair exceeds a total of 3.75GiB. Previously, a panic would occur for key-value pairs that were approximately 4GiB.
  • Downgrade several info! log messages to debug!

... (truncated)

Changelog

Sourced from redb's changelog.

2.3.0 - 2024-12-10

  • Add WriteTransaction::set_two_phase_commit()
  • Add WriteTransaction::set_quick_repair() which enables a faster repair mechanism at the cost of slower transaction commits
  • Durability::Paranoid is now deprecated. Use set_two_phase_commit(true) instead
  • Fix various bugs when repairing the database after an unclean shutdown. These could result in panics, leaked space in the database file, or database corruption

2.2.0 - 2024-10-27

  • Implement TableHandle for ReadOnlyTable
  • Fix bug in write cache, which caused pages to be evicted randomly. Pages are now evicted based on how recently they have been accessed

2.1.4 - 2024-10-10

  • Optimize first() and last() to be almost 2x faster
  • Improve in-memory cache algorithm to resolve edge cases where certain pages could become uncacheable under cache pressure
  • Fix bug in read cache where the read cache could become disabled. This was likely to occur in multithreaded workloads when the read cache was smaller than the database file. This bug lead to 5-10x performance degradations for some workloads

2.1.3 - 2024-09-14

  • Significant performance optimizations to compact()
  • Fix some additional cases where compact() did not fully compact the database
  • Fix a panic that could occur in commit() or abort() after an IO error. StorageError::PreviousIo is now returned
  • Fix a potential panic that could occur when repairing the database after a crash

2.1.2 - 2024-08-25

Major fixes:

  • Fix leak of database space that could occur when calling restore_savepoint()
  • Fix leak of database space when calling delete_multimap_table()
  • Fix database corruption which could occur when restoring a savepoint. This edge case is rare, and could only occur if the database was less than approximately 4TiB when the savepoint was created, and greater than 4TiB when the savepoint was restored
  • Fix edge case where a transient I/O error that occurred during transaction commit, but then did not reoccur when the Database was dropped, could cause database corruption

Important: If your application has called restore_savepoint(), delete_multimap_table(), or you suspect it may have experienced a transient I/O error during transaction commit. It is recommended that you run check_integrity() after upgrading to this version. This will both detect corruption and clean up any leaked space.

Other changes and fixes:

  • Optimize page freeing to reduce the size of the database file
  • Fix several cases where check_integrity() would return Ok(false) instead of Ok(true)
  • Fix some cases where compact() did not fully compact the database
  • Make the metadata overhead returned by WriteTransaction::stats() more accurate
  • Return StorageError::ValueTooLarge when a key-value pair exceeds a total of 3.75GiB. Previously, a panic would occur for key-value pairs that were approximately 4GiB.
  • Downgrade several info! log messages to debug!

... (truncated)

Commits
  • 3862242 Bump version to 2.3.0
  • 379f151 Update changelog
  • dc0460a Don't mark the region tracker page as allocated
  • 3ce4776 Don't flush allocator state after a failed repair
  • 7ff12bb Compaction also needs to use allocate_non_transactional()
  • 71e3b41 No need to flush non-durable commits anymore
  • 36c07ab Use rust-toolchain file in CI instead of hard coded version
  • f20d6d3 Change benchmark output format to always use milliseconds
  • 89a8236 Update benchmark numbers in readme
  • b95aebc explicitly set cache sizes
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot bot requested a review from scarmuega as a code owner December 16, 2024 03:34
@dependabot dependabot bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Dec 16, 2024
@scarmuega
Copy link
Member

@dependabot rebase

@dependabot dependabot bot force-pushed the dependabot/cargo/redb-2.3.0 branch from 8b2ba19 to 2b24daf Compare December 20, 2024 18:26
@scarmuega
Copy link
Member

@dependabot rebase

Bumps [redb](https://github.com/cberner/redb) from 2.1.0 to 2.3.0.
- [Release notes](https://github.com/cberner/redb/releases)
- [Changelog](https://github.com/cberner/redb/blob/master/CHANGELOG.md)
- [Commits](cberner/redb@v2.1.0...v2.3.0)

---
updated-dependencies:
- dependency-name: redb
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot force-pushed the dependabot/cargo/redb-2.3.0 branch from 2b24daf to fad9480 Compare December 25, 2024 14:13
@scarmuega scarmuega merged commit b6b933c into main Dec 25, 2024
11 checks passed
@scarmuega scarmuega deleted the dependabot/cargo/redb-2.3.0 branch December 25, 2024 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file rust Pull requests that update Rust code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant