Repository navigation
chore(deps): update rust crate redb to v4.5.0 - #222
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
4.4.0→4.5.0Release Notes
cberner/redb (redb)
v4.5.0Compare Source
Multi-process support
Database files cannot be shared between processes using these modes and processes using the
experimental-multiprocessfeature of redb 4.3 or 4.4. Their locking is incompatible, and 4.5can't detect the older processes.
Builder::set_concurrency_mode(), which takes aConcurrencyModeconfiguring how processesmay share the database.
ConcurrencyMode::ExclusiveWriter(the default) locks the whole file, as earlier versions do.ConcurrencyMode::SingleWriterallows one process to write, and any number of processes may openthe database read-only.
ConcurrencyMode::MultiWriterallows any number of processes to open the database forwriting, one write transaction at a time, and any number may open it read-only.
New features
Builder::open_read_only_with_backend()to open a read-only database from a storage backend.Builder::set_check_integrity_on_open(), which verifies the whole file on everyopen()instead of trusting the state recorded by a clean shutdown.
ReadOnlyDatabase::close(), which releases the file and its locks without waiting for theread transactions opened from the database to be dropped.
Database::close(), which closes the database as dropping it does, but returns any errorrather than ignoring it.
Database::try_begin_write(), which returnsTransactionError::WouldBlockinstead ofwaiting for an in-progress write transaction to finish.
Performance
&strorStringkeys are faster.Deprecations
Builder::create_file()is deprecated; useBuilder::create_with_backend(FileBackend::new(file)?)instead.WriteTransaction::print_allocated_page_debug()is deprecated. It is an internal debugging aid,present only in debug builds.
Bug fixes
open()reports a malformed allocator state asStorageError::Corruptedinstead of panicking.check_integrity()verify the trees kept by persistent savepoints, which were notchecked before.
cache_stats(), with thecache_metricsfeature, panicking in debug builds or returning awrite_misses()nearu64::MAXin release builds when called while another thread is writing.check_integrity(), andcommit()report some forms of file corruption asStorageError::Corruptedinstead of panicking. This cannot occur in normal operation, and only effects database which were externally modified.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.