Struct mz_rocksdb::config::SharedWriteBufferManager
source · pub struct SharedWriteBufferManager {
shared: Arc<Mutex<Weak<WriteBufferManager>>>,
}
Fields§
Keeping a Weak pointer to WriteBufferManager here behind an Arc and a Mutex.
The strong pointers will be owned by each RocksDBInstance
.
When the rocksdb instances are cleaned up, the WriteBufferManager here will
be cleaned up as well.
Updates to config values via RocksDbWriteBufferManagerConfig will not update
the WriteBufferManager once it’s initialized here and there’s at least one RocksDBInstance
keeping a strong reference to it.
Implementations§
sourcepub(crate) fn get_or_init<F>(&self, initializer: F) -> WriteBufferManagerHandlewhere
F: FnOnce() -> WriteBufferManager,
pub(crate) fn get_or_init<F>(&self, initializer: F) -> WriteBufferManagerHandlewhere
F: FnOnce() -> WriteBufferManager,
If a shared WriteBufferManager does not already exist, then it’s initialized
with given initializer
.
A strong reference is returned for the shared buffer manager.
sourcepub fn get(&self) -> Option<Arc<WriteBufferManager>>
pub fn get(&self) -> Option<Arc<WriteBufferManager>>
This will return a non-empty WriteBufferManager only after it has been initialized by a RocksDBInstance. This method is only used in tests.
Trait Implementations§
source§fn clone(&self) -> SharedWriteBufferManager
fn clone(&self) -> SharedWriteBufferManager
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 moresource§fn default() -> SharedWriteBufferManager
fn default() -> SharedWriteBufferManager
Returns the “default value” for a type. Read more
Auto Trait Implementations§
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.