v0.4.0 #41
ecton
announced in
Announcements
v0.4.0
#41
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Breaking Changes
get_multiple
has been changed to accept an Iterator over borrowed byte slices.ExecutingTransaction::tree
now returns aLockedTransactionTree
, whichholds a shared reference to the transaction now. Previously
tree()
requiredan exclusive reference to the transaction, preventing consumers of Nebari from
using multiple threads to process more complicated transactions.
This API is paired by a new addition:
ExecutingTransaction::unlocked_tree
.This API returns an
UnlockedTransactionTree
which can be sent across threadboundaries safely. It offers a
lock()
function to return aLockedTransactionTree
when the tread is ready to operate on the tree.TransactionManager::push
has been made private. This is a result of theprevious breaking change.
TransactionManager::new_transaction()
is a newfunction that returns a
ManagedTransaction
.ManagedTransaction::commit()
is the new way to commit a transaction in a transaction manager.
Fixed
TransactionManager
now enforces that transaction log entries are writtensequentially. The ACID-compliance of Nebari was never broken when
non-sequential log entries are written, but scanning the log file could fail
to retrieve items as the scanning algorithm expects the file to be ordered
sequentially.
Added
ThreadPool::new(usize)
allows creating a thread pool with a maximum numberof threads set.
ThreadPool::default()
continues to usenum_cpus::get
toconfigure this value automatically.
This discussion was created from the release v0.4.0.
Beta Was this translation helpful? Give feedback.
All reactions