pub struct TableStore { /* private fields */ }Implementations§
Source§impl TableStore
impl TableStore
pub fn init(dir: PathBuf, key_size: usize) -> Self
pub fn reinit(&self)
pub fn key_size(&self) -> usize
pub fn load(dir: PathBuf, key_size: usize) -> Self
pub fn save_table( &self, mut_table: MutableTable, ) -> TableStoreResult<Arc<ReadonlyTable>>
pub fn get_head(&self) -> TableStoreResult<Arc<ReadonlyTable>>
pub fn get_head_locked( &self, ) -> TableStoreResult<(Arc<ReadonlyTable>, FileLock)>
Sourcepub fn gc(
&self,
head: &Arc<ReadonlyTable>,
keep_newer: SystemTime,
) -> Result<(), PathError>
pub fn gc( &self, head: &Arc<ReadonlyTable>, keep_newer: SystemTime, ) -> Result<(), PathError>
Prunes unreachable table segments.
All table segments reachable from the head won’t be removed. In
addition to that, segments created after keep_newer will be
preserved. This mitigates a risk of deleting new segments created
concurrently by another process.
The caller may decide whether to lock the store by get_head_locked().
It’s generally safe to run gc() without locking so long as the
keep_newer time is reasonably old, and all writers reload table
segments by get_head_locked() before adding new entries.
Auto Trait Implementations§
impl !Freeze for TableStore
impl RefUnwindSafe for TableStore
impl Send for TableStore
impl Sync for TableStore
impl Unpin for TableStore
impl UnwindSafe for TableStore
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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