pub struct CachingReader { /* private fields */ }Expand description
Adds file content caching to object store reads.
This is an internal component used by ParquetReader, not a standalone AsyncFileReader.
It only provides get_bytes and get_byte_ranges methods - metadata handling remains
in the ParquetReader layer.
Uses a two-level caching strategy:
- Local
cached_data- avoids global cache lookups within a single reader - Global
FileCache- shared across all readers, with thundering herd protection
Implementations§
Source§impl CachingReader
impl CachingReader
pub fn new( object_store: Arc<dyn ObjectStore>, path: Path, filename: String, file_size: u64, file_cache: Arc<FileCache>, ) -> CachingReader
Sourcepub fn last_read_was_cache_hit(&self) -> bool
pub fn last_read_was_cache_hit(&self) -> bool
Returns whether the most recent read operation was served from cache.
pub async fn get_bytes( &mut self, range: Range<u64>, ) -> Result<Bytes, ParquetError>
pub async fn get_byte_ranges( &mut self, ranges: Vec<Range<u64>>, ) -> Result<Vec<Bytes>, ParquetError>
Auto Trait Implementations§
impl !Freeze for CachingReader
impl !RefUnwindSafe for CachingReader
impl Send for CachingReader
impl Sync for CachingReader
impl Unpin for CachingReader
impl !UnwindSafe for CachingReader
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].