Skip to main content

StorageBackend

Struct StorageBackend 

Source
pub struct StorageBackend {
    pub object_store: Arc<dyn ObjectStore>,
    pub base_path: String,
    pub original_uri: String,
}
Expand description

Native object-store storage handles shared by catalog, session, and stream writers.

Fields§

§object_store: Arc<dyn ObjectStore>

object_store adapter used by DataFusion, Parquet, and existing persistence code.

§base_path: String

Path prefix inside the object store for URI schemes that carry bucket/container roots.

§original_uri: String

Normalized URI used to create this backend.

Implementations§

Source§

impl StorageBackend

Source

pub fn datafusion_root_url(&self) -> Result<Url>

Returns the root URL DataFusion should associate with this object store.

Delta and external catalog integrations use object-store-relative paths after the object store has already rooted the operator at the catalog path. Registering the object store at the URI authority root keeps those relative table paths stable across local, memory, and cloud storage.

§Errors

Returns an error if the original URI cannot be converted into a DataFusion object-store URL.

Source

pub async fn list_directory_stems( &self, subdirectory: &str, ) -> Result<Vec<String>>

Lists immediate child directory stems below a storage-relative subdirectory.

This is used by catalog data and run-session discovery so local, memory, and cloud backends share one object-store listing path.

§Errors

Returns an error if the object-store listing fails.

Source

pub async fn list_files( &self, subdirectory: &str, suffix: Option<&str>, ) -> Result<Vec<String>>

Lists files below a storage-relative subdirectory.

§Errors

Returns an error if the object-store listing fails.

Source

pub async fn write_run_manifest( &self, kind: &str, instance_id: &str, status: &str, empty: bool, ) -> Result<()>

Writes a manifest for a run under the catalog session root.

§Errors

Returns an error if manifest serialization or storage writing fails.

Source

pub async fn write_current_run_manifest( &self, kind: &str, instance_id: &str, status: &str, empty: bool, ) -> Result<()>

Writes a manifest at the backend root, for writers rooted directly at one run directory.

§Errors

Returns an error if manifest serialization or storage writing fails.

Source

pub async fn read_run_manifest( &self, kind: &str, instance_id: &str, ) -> Result<Option<RunManifest>>

Reads a run manifest from catalog session storage.

§Errors

Returns an error if storage reading or manifest deserialization fails.

Source

pub async fn list_run_ids(&self, kind: &str) -> Result<Vec<String>>

Lists run IDs from directories and manifests for one session kind.

§Errors

Returns an error if storage listing or manifest reading fails.

Source

pub async fn list_run_ids_for_kinds( &self, kinds: &[&str], ) -> Result<Vec<String>>

Lists run IDs from directories and manifests for multiple session kind aliases.

§Errors

Returns an error if storage listing or manifest reading fails.

Trait Implementations§

Source§

impl Clone for StorageBackend

Source§

fn clone(&self) -> Self

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

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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.

§

impl<T> Instrument for T

§

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

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

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
§

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

§

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
§

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
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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

impl<T> Ungil for T
where T: Send,

§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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