Skip to main content

ColdStore

Struct ColdStore 

Source
pub struct ColdStore { /* private fields */ }

Implementations§

Source§

impl ColdStore

Source

pub async fn list_cold_index_pages(&self) -> Result<Vec<ColdIndexPageKey>>

Lists the authoritative cold-index pages rather than every chunk. One page covers 64 MiB of one stream, so this is the bounded discovery surface used by the background chunk compactor.

Source

pub fn memory() -> Result<Self>

Source

pub fn try_new(config: &ColdConfig) -> Result<Self>

Build a ColdStore from an explicit ColdConfig.

The bootstrap layer assembles the typed config before calling this method; this method is purely functional — it does not touch std::env.

Returns Err when the backend is ColdBackend::None; the caller should skip construction when cold storage is disabled.

Source

pub fn info(&self) -> &ColdStoreInfo

Source

pub fn with_read_cache(self, config: ColdReadCacheParams) -> Self

Source

pub fn without_read_cache(self) -> Self

Source

pub fn set_observer( &self, observer: impl Fn(ColdStoreEvent) + Send + Sync + 'static, )

Source

pub fn set_fault_policy( &self, policy: impl Fn(&ColdStoreFaultContext) -> Option<ColdStoreFaultEffect> + Send + Sync + 'static, )

Source

pub fn clear_fault_policy(&self)

Source

pub fn set_delay_fn<F, Fut>(&self, delay_fn: F)
where F: Fn(Duration) -> Fut + Send + Sync + 'static, Fut: Future<Output = ()> + Send + 'static,

Source

pub async fn write_chunk(&self, path: &str, payload: &[u8]) -> Result<u64>

Source

pub async fn delete_chunk(&self, path: &str) -> Result<()>

Source

pub async fn remove_all(&self, path: &str) -> Result<()>

Source

pub async fn prefix_is_empty(&self, path: &str) -> Result<bool>

Proves that the object store has no file below path. Tenant purge uses this after recursive deletion; a successful delete request alone is not physical-absence evidence.

Source

pub async fn read_chunk_range( &self, chunk: &ColdChunkRef, read_start_offset: u64, len: usize, ) -> Result<Vec<u8>>

Source

pub async fn read_object_range_for_stream( &self, stream_id: &BucketStreamId, object: &ObjectPayloadRef, read_start_offset: u64, len: usize, ) -> Result<Vec<u8>>

Source

pub async fn read_object_range( &self, object: &ObjectPayloadRef, read_start_offset: u64, len: usize, ) -> Result<Vec<u8>>

Trait Implementations§

Source§

impl Clone for ColdStore

Source§

fn clone(&self) -> ColdStore

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ColdStore

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> MaybeSend for T
where T: Send,

Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + 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: Sized + 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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<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