pub struct SourceTuning {Show 13 fields
pub batch_size: usize,
pub batch_size_memory_mb: Option<usize>,
pub throttle_ms: u64,
pub statement_timeout_s: u64,
pub max_retries: u32,
pub retry_backoff_ms: u64,
pub lock_timeout_s: u64,
pub memory_threshold_mb: usize,
pub max_batch_memory_mb: Option<usize>,
pub on_batch_memory_exceeded: BatchMemoryPolicy,
pub adaptive: bool,
pub min_parallel: Option<usize>,
pub max_value_mb: Option<usize>,
/* private fields */
}Fields§
§batch_size: usize§batch_size_memory_mb: Option<usize>§throttle_ms: u64§statement_timeout_s: u64§max_retries: u32§retry_backoff_ms: u64§lock_timeout_s: u64§memory_threshold_mb: usizeRSS limit in MB before chunk processing throttles. 0 = no limit (disabled).
max_batch_memory_mb: Option<usize>Hard cap on a single Arrow batch in MB. None = no cap.
on_batch_memory_exceeded: BatchMemoryPolicy§adaptive: boolWhen true, Rivet samples DB pressure metrics every
super::ADAPTIVE_SAMPLE_INTERVAL batches and shrinks/restores the
fetch size in response. Default: false.
min_parallel: Option<usize>Floor for the OPT-2 concurrency governor: the lowest worker/connection
count it will back parallelism down to under source pressure. None
⇒ 1. The ceiling is the export’s configured parallel. Only consulted
when adaptive is on and parallel > 1.
max_value_mb: Option<usize>Hard ceiling on a single cell/value in MB (OPT-1 memory hardening): a
variable-length value (text/JSON/blob) larger than this aborts the run
with RIVET_VALUE_TOO_LARGE instead of risking OOM, since the
average-based batch cap can’t bound one giant cell. Some(0) / None
disable the guard. Default: 256 MiB.
Implementations§
Source§impl SourceTuning
impl SourceTuning
Sourcepub fn from_config(config: Option<&TuningConfig>) -> Self
pub fn from_config(config: Option<&TuningConfig>) -> Self
Build tuning with the legacy Balanced fallback. Public for downstream
callers and tests; production resolution in [crate::plan::build] uses
Self::from_config_with_default_profile so that source.environment:
can pick the right default.
Sourcepub fn from_config_with_default_profile(
config: Option<&TuningConfig>,
fallback_profile: TuningProfile,
) -> Self
pub fn from_config_with_default_profile( config: Option<&TuningConfig>, fallback_profile: TuningProfile, ) -> Self
Like Self::from_config but lets the caller override the fallback
profile used when config.profile is unset.
pub fn profile_name(&self) -> &'static str
Sourcepub fn effective_batch_size(&self, schema: Option<&SchemaRef>) -> usize
pub fn effective_batch_size(&self, schema: Option<&SchemaRef>) -> usize
If batch_size_memory_mb is set, compute and return an adjusted batch_size
from the schema; otherwise return the configured batch_size.
Sourcepub fn batch_memory_bytes(batch: &RecordBatch) -> usize
pub fn batch_memory_bytes(batch: &RecordBatch) -> usize
Return the actual Arrow memory footprint of a batch in bytes.
Sums get_array_memory_size() across all columns — includes buffers for
validity bitmaps, offsets, and value data. Does not include Arrow struct
overhead (~few hundred bytes) which is negligible at batch scale.
Sourcepub fn resource_summary(&self) -> ResourceSummary
pub fn resource_summary(&self) -> ResourceSummary
Produce a ResourceSummary from the resolved tuning settings.
The summary requires no database connection. It reports two batch-memory
bounds based on narrow-table (~200 B/row) and wide-table (~10 KB/row)
heuristics. A wide_table_risk flag is set when the upper bound exceeds
128 MB per batch.
Trait Implementations§
Source§impl Clone for SourceTuning
impl Clone for SourceTuning
Source§fn clone(&self) -> SourceTuning
fn clone(&self) -> SourceTuning
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SourceTuning
impl Debug for SourceTuning
Source§impl<'de> Deserialize<'de> for SourceTuning
impl<'de> Deserialize<'de> for SourceTuning
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for SourceTuning
impl Display for SourceTuning
Auto Trait Implementations§
impl Freeze for SourceTuning
impl RefUnwindSafe for SourceTuning
impl Send for SourceTuning
impl Sync for SourceTuning
impl Unpin for SourceTuning
impl UnsafeUnpin for SourceTuning
impl UnwindSafe for SourceTuning
Blanket Implementations§
impl<T> Allocation for T
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.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>
impl<T> MaybeSend for Twhere
T: Send,
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.