pub struct WritePin { /* private fields */ }Expand description
Keeps the dictionaries a write’s files name out of a dictionary collection until those files are installed.
A write resolves its dictionary from the policy snapshot it started under, and a collection spares every dictionary a still-held snapshot names, however the policy has changed since. The pin is that hold, owned by the operation rather than its writers, since finishing a writer comes before the install: drop it only once the files it covers are part of the tree, from which point the files name the dictionary themselves. A flush and an ingestion carry it from where their files are finished to where they are installed; a compaction, which does both in one call, holds its snapshot directly. Always empty in builds without zstd, which have no dictionaries to collect.
It also holds the filter bytes the write took in the tree’s filter budget, when the tree sizes its filters by probe load: dropped before the install, the budget would hand that room to another rewrite while the files that take it are about to join the tree.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for WritePin
impl !UnwindSafe for WritePin
impl Freeze for WritePin
impl Send for WritePin
impl Sync for WritePin
impl Unpin for WritePin
impl UnsafeUnpin for WritePin
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more