Skip to main content

BlobRangeMap

Struct BlobRangeMap 

Source
pub struct BlobRangeMap { /* private fields */ }
Expand description

An implementation of RangeMap to support cache state tracking by using a bitmap file.

The BlobRangeMap is an implementation of RangeMap which uses a bitmap file and atomic bitmap operations to track readiness state. It creates or opens a file with the name $blob_id.range_map to record whether a data range has been cached by the blob cache, and atomic bitmap operations are used to manipulate the state bit. The bitmap file will be persisted to disk.

Implementations§

Source§

impl BlobRangeMap

Source

pub fn new(blob_path: &str, count: u32, shift: u32) -> Result<Self>

Create a new instance of BlobRangeMap.

Source

pub fn open( blob_id: &str, workdir: &str, count: u32, shift: u32, ) -> Result<Self>

Create a new instance of BlobRangeMap from an existing chunk map file.

Trait Implementations§

Source§

impl RangeMap for BlobRangeMap

Source§

fn is_range_ready(&self, start: u64, count: u64) -> Result<bool>

Check whether all data in the range are ready for use.

Source§

type I = u64

Source§

fn is_range_all_ready(&self) -> bool

Check whether all chunks or data managed by the RangeMap object are ready.
Source§

fn check_range_ready_and_mark_pending( &self, start: u64, count: u64, ) -> Result<Option<Vec<u64>>>

Check whether all chunks or data in the range [start, start + count) are ready. Read more
Source§

fn set_range_ready_and_clear_pending( &self, start: u64, count: u64, ) -> Result<()>

Mark all chunks or data in the range as ready for use.
Source§

fn clear_range_pending(&self, _start: Self::I, _count: Self::I)

Clear the pending state for all chunks or data in the range.
Source§

fn wait_for_range_ready(&self, _start: Self::I, _count: Self::I) -> Result<bool>

Wait for all chunks or data in the range to be ready until timeout.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more