Struct sled::transaction::TransactionalTree
source · pub struct TransactionalTree { /* private fields */ }
Expand description
A transaction that will be applied atomically to the Tree.
Implementations§
source§impl TransactionalTree
impl TransactionalTree
sourcepub fn insert<K, V>(
&self,
key: K,
value: V
) -> Result<Option<IVec>, UnabortableTransactionError>
pub fn insert<K, V>( &self, key: K, value: V ) -> Result<Option<IVec>, UnabortableTransactionError>
Set a key to a new value
sourcepub fn remove<K>(
&self,
key: K
) -> Result<Option<IVec>, UnabortableTransactionError>
pub fn remove<K>( &self, key: K ) -> Result<Option<IVec>, UnabortableTransactionError>
Remove a key
sourcepub fn get<K: AsRef<[u8]>>(
&self,
key: K
) -> Result<Option<IVec>, UnabortableTransactionError>
pub fn get<K: AsRef<[u8]>>( &self, key: K ) -> Result<Option<IVec>, UnabortableTransactionError>
Get the value associated with a key
sourcepub fn apply_batch(
&self,
batch: &Batch
) -> Result<(), UnabortableTransactionError>
pub fn apply_batch( &self, batch: &Batch ) -> Result<(), UnabortableTransactionError>
Atomically apply multiple inserts and removals.
sourcepub fn generate_id(&self) -> Result<u64>
pub fn generate_id(&self) -> Result<u64>
Generate a monotonic ID. Not guaranteed to be
contiguous or idempotent, can produce different values in the
same transaction in case of conflicts.
Written to disk every idgen_persist_interval
operations, followed by a blocking flush. During recovery, we
take the last recovered generated ID and add 2x
the idgen_persist_interval
to it. While persisting, if the
previous persisted counter wasn’t synced to disk yet, we will do
a blocking flush to fsync the latest counter, ensuring
that we will never give out the same counter twice.
Trait Implementations§
source§impl Clone for TransactionalTree
impl Clone for TransactionalTree
source§fn clone(&self) -> TransactionalTree
fn clone(&self) -> TransactionalTree
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for TransactionalTree
impl !RefUnwindSafe for TransactionalTree
impl !Send for TransactionalTree
impl !Sync for TransactionalTree
impl Unpin for TransactionalTree
impl !UnwindSafe for TransactionalTree
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more