pub struct ImmutableMemTableCache { /* private fields */ }Expand description
ImmutableMemTable のキャッシュ管理。
max_immutable_countを超えないように、追加時にエビクションを行う。- フラッシュ中(
flushing == true)の MemTable はエビクトしない。
注: この構造体はスレッドセーフではないため、呼び出し側で外側のロック(例: RwLock)を行うこと。
Implementations§
Source§impl ImmutableMemTableCache
impl ImmutableMemTableCache
Sourcepub fn max_immutable_count(&self) -> usize
pub fn max_immutable_count(&self) -> usize
max_immutable_count を返す。
Sourcepub fn try_push(
&mut self,
table: Arc<ImmutableMemTable>,
) -> Option<ImmutableMemTablePushOutcome>
pub fn try_push( &mut self, table: Arc<ImmutableMemTable>, ) -> Option<ImmutableMemTablePushOutcome>
immutable MemTable を追加する。
max_immutable_count に達している場合は、エビクションできる候補を選び、空きが作れた場合のみ追加する。
フラッシュ中の候補しかない場合は None を返して追加しない。
Sourcepub fn get(&self, id: ImmutableMemTableId) -> Option<Arc<ImmutableMemTable>>
pub fn get(&self, id: ImmutableMemTableId) -> Option<Arc<ImmutableMemTable>>
ID で immutable MemTable を取得する(保持していれば)。
Sourcepub fn set_flushing(&mut self, id: ImmutableMemTableId, flushing: bool) -> bool
pub fn set_flushing(&mut self, id: ImmutableMemTableId, flushing: bool) -> bool
フラッシュ中フラグを設定する(見つからなければ false)。
Sourcepub fn remove(
&mut self,
id: ImmutableMemTableId,
) -> Option<Arc<ImmutableMemTable>>
pub fn remove( &mut self, id: ImmutableMemTableId, ) -> Option<Arc<ImmutableMemTable>>
ID 指定でキャッシュから取り除く(見つからなければ None)。
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ImmutableMemTableCache
impl RefUnwindSafe for ImmutableMemTableCache
impl Send for ImmutableMemTableCache
impl Sync for ImmutableMemTableCache
impl Unpin for ImmutableMemTableCache
impl UnsafeUnpin for ImmutableMemTableCache
impl UnwindSafe for ImmutableMemTableCache
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