pub struct DeltaProviderScanExecutionOptions {
pub reader_backend: DeltaProviderReaderBackend,
pub max_concurrent_file_reads_per_scan: Option<usize>,
pub max_concurrent_file_reads_per_partition: usize,
pub output_buffer_capacity_per_partition: usize,
pub native_async_prefetch_file_count_per_partition: usize,
}Expand description
Bounded scheduling options for one Delta DataFusion provider scan.
These limits apply to provider-scheduled physical Delta file reads. The official-kernel sync fallback limits a conservative file-level handoff: reading one file and sending its batches into the bounded DataFusion output channel. The native async reader preserves the same active-read semantics with async semaphore-style permits.
Fields§
§reader_backend: DeltaProviderReaderBackendFile-reader backend used by normal provider scan execution.
max_concurrent_file_reads_per_scan: Option<usize>Maximum file-read handoffs that may run at once across the whole scan.
This is the scan-wide concurrency cap shared by all DataFusion execution partitions for one provider scan.
max_concurrent_file_reads_per_partition: usizeMaximum file-read handoffs that one execution partition may own at once.
This prevents a single DataFusion execution partition from consuming all scan-wide read capacity when multiple scan partitions are active.
output_buffer_capacity_per_partition: usizeBounded output channel capacity for each DataFusion execution partition.
This is the producer-to-DataFusion handoff queue used after file reads
produce Arrow batches. A value of 1 preserves the historical behavior.
native_async_prefetch_file_count_per_partition: usizeNative async file reads to prefetch ahead of downstream demand per partition.
A value of 0 keeps the native async backend fully lazy: each file is
opened only after the previous file is drained. Positive values allow
the native async backend to begin opening additional files while the
current file is still producing batches. This setting is internal
hardening and benchmark surface; the official-kernel backend ignores it.
Implementations§
Source§impl DeltaProviderScanExecutionOptions
impl DeltaProviderScanExecutionOptions
Sourcepub fn try_new(
max_concurrent_file_reads_per_scan: usize,
max_concurrent_file_reads_per_partition: usize,
) -> Result<Self, DeltaFunnelError>
pub fn try_new( max_concurrent_file_reads_per_scan: usize, max_concurrent_file_reads_per_partition: usize, ) -> Result<Self, DeltaFunnelError>
Builds validated Delta provider scan execution options.
Sourcepub fn try_new_with_reader_backend(
reader_backend: DeltaProviderReaderBackend,
max_concurrent_file_reads_per_scan: usize,
max_concurrent_file_reads_per_partition: usize,
) -> Result<Self, DeltaFunnelError>
pub fn try_new_with_reader_backend( reader_backend: DeltaProviderReaderBackend, max_concurrent_file_reads_per_scan: usize, max_concurrent_file_reads_per_partition: usize, ) -> Result<Self, DeltaFunnelError>
Builds validated Delta provider scan execution options with a reader backend.
Sourcepub fn with_output_buffer_capacity_per_partition(
self,
output_buffer_capacity_per_partition: usize,
) -> Result<Self, DeltaFunnelError>
pub fn with_output_buffer_capacity_per_partition( self, output_buffer_capacity_per_partition: usize, ) -> Result<Self, DeltaFunnelError>
Sets the per-partition bounded output buffer capacity.
Sourcepub fn with_native_async_prefetch_file_count_per_partition(
self,
native_async_prefetch_file_count_per_partition: usize,
) -> Result<Self, DeltaFunnelError>
pub fn with_native_async_prefetch_file_count_per_partition( self, native_async_prefetch_file_count_per_partition: usize, ) -> Result<Self, DeltaFunnelError>
Sets native async file-read prefetch depth per execution partition.
Sourcepub fn validate(&self) -> Result<(), DeltaFunnelError>
pub fn validate(&self) -> Result<(), DeltaFunnelError>
Validates provider scan execution bounds before registration or scan execution.
Trait Implementations§
Source§impl Clone for DeltaProviderScanExecutionOptions
impl Clone for DeltaProviderScanExecutionOptions
Source§fn clone(&self) -> DeltaProviderScanExecutionOptions
fn clone(&self) -> DeltaProviderScanExecutionOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for DeltaProviderScanExecutionOptions
impl Eq for DeltaProviderScanExecutionOptions
Source§impl PartialEq for DeltaProviderScanExecutionOptions
impl PartialEq for DeltaProviderScanExecutionOptions
Source§fn eq(&self, other: &DeltaProviderScanExecutionOptions) -> bool
fn eq(&self, other: &DeltaProviderScanExecutionOptions) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for DeltaProviderScanExecutionOptions
Auto Trait Implementations§
impl Freeze for DeltaProviderScanExecutionOptions
impl RefUnwindSafe for DeltaProviderScanExecutionOptions
impl Send for DeltaProviderScanExecutionOptions
impl Sync for DeltaProviderScanExecutionOptions
impl Unpin for DeltaProviderScanExecutionOptions
impl UnsafeUnpin for DeltaProviderScanExecutionOptions
impl UnwindSafe for DeltaProviderScanExecutionOptions
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> AsAny for T
impl<T> AsAny for T
Source§fn any_ref(&self) -> &(dyn Any + Send + Sync + 'static)
fn any_ref(&self) -> &(dyn Any + Send + Sync + 'static)
dyn Any reference to the object: Read moreSource§fn as_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ
fn as_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ
Arc<dyn Any> reference to the object: Read moreSource§fn into_any(self: Box<T>) -> Box<dyn Any + Send + Sync>
fn into_any(self: Box<T>) -> Box<dyn Any + Send + Sync>
Box<dyn Any>: Read moreSource§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
std::any::type_name, since Any does not provide it and
Any::type_id is useless as a debugging aid (its Debug is just a mess of hex digits).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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DynPartialEq for T
impl<T> DynPartialEq for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> 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>
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>
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