Skip to main content

LaminarDbBuilder

Struct LaminarDbBuilder 

Source
pub struct LaminarDbBuilder { /* private fields */ }
Expand description

Fluent builder for constructing a LaminarDB instance.

§Example

ⓘ
let db = LaminarDB::builder()
    .config_var("KAFKA_BROKERS", "localhost:9092")
    .buffer_size(131072)
    .build()
    .await?;

Implementations§

Source§

impl LaminarDbBuilder

Source

pub fn new() -> Self

Create a new builder with default settings.

Source

pub fn ai(self, runtime: Arc<AiRuntime>) -> Self

Install the AI subsystem; required for ai_* SQL functions.

Source

pub fn target_partitions(self, n: usize) -> Self

Override target_partitions.

Source

pub fn physical_optimizer_rule( self, rule: Arc<dyn PhysicalOptimizerRule + Send + Sync>, ) -> Self

Register an additional PhysicalOptimizerRule on the session state.

Source

pub fn vnode_registry(self, registry: Arc<VnodeRegistry>) -> Self

Install the vnode topology and ownership registry.

Source

pub fn key_groups(self, key_groups: KeyGroupCount) -> Self

Set the stable key-group topology for a local runtime.

When no registry is injected, the local node owns every configured key group.

Source

pub fn cluster_controller(self, controller: Arc<ClusterController>) -> Self

Install the cluster control facade; selects cluster runtime semantics when the profile is inferred. An explicitly selected profile must be Profile::Cluster.

Source

pub fn shuffle_sender(self, sender: Arc<ShuffleSender>) -> Self

Install the outbound shuffle handle; pair with Self::shuffle_receiver.

Source

pub fn shuffle_receiver(self, receiver: Arc<ShuffleReceiver>) -> Self

Install the inbound shuffle handle; pair with Self::shuffle_sender.

Source

pub fn decision_store(self, store: Arc<CheckpointDecisionStore>) -> Self

Install the commit-marker store for cross-instance 2PC.

Source

pub fn assignment_snapshot_store( self, store: Arc<AssignmentSnapshotStore>, ) -> Self

Install the assignment-snapshot store for dynamic rebalance.

Source

pub fn catalog_manifest_store(self, store: Arc<CatalogManifestStore>) -> Self

Install the catalog-manifest store for cluster-wide DDL replay.

Source

pub fn verified_cluster_namespaces( self, namespaces: VerifiedClusterNamespaces, ) -> Self

Install the exact checkpoint handle admitted by the cluster namespace proof.

Source

pub fn config_var(self, key: &str, value: &str) -> Self

Set a config variable for ${VAR} substitution in SQL.

Source

pub fn http_auth_token(self, token: impl Into<String>) -> Self

Set the bearer token presented when forwarding requests to the cluster leader’s HTTP API.

Source

pub fn buffer_size(self, size: usize) -> Self

Set the default buffer size for streaming channels.

Source

pub fn backpressure(self, strategy: BackpressureStrategy) -> Self

Set the default backpressure strategy.

Source

pub fn storage_dir(self, path: impl Into<PathBuf>) -> Self

Set the storage directory for WAL and checkpoints.

Source

pub fn checkpoint(self, config: StreamCheckpointConfig) -> Self

Set checkpoint configuration.

Source

pub fn profile(self, profile: Profile) -> Self

Set the deployment profile.

See Profile for the available tiers. Profile::Cluster also requires a cluster controller at build time.

Source

pub fn object_store_url(self, url: impl Into<String>) -> Self

Set the object-store URL for durable checkpoints.

Required when using Profile::Durable or Profile::Cluster.

Source

pub fn object_store_options(self, opts: HashMap<String, String>) -> Self

Set explicit credential/config overrides for the object store.

Keys are backend-specific (e.g., aws_access_key_id, aws_region). These supplement environment-variable-based credential resolution.

Source

pub fn delivery_guarantee(self, guarantee: DeliveryGuarantee) -> Self

Set the end-to-end delivery guarantee for the pipeline.

Source

pub fn register_udf(self, udf: ScalarUDF) -> Self

Register a custom scalar UDF; available in SQL after build().

Source

pub fn register_udaf(self, udaf: AggregateUDF) -> Self

Register a custom aggregate UDF; available in SQL after build().

Source

pub fn push_source_max_bytes(self, bytes: usize) -> Self

Per-source Arrow-byte cap for embedded push queues (default 64 MiB). Each source’s snapshot history has an independent cap of the same size. Typed handles are checked after Arrow conversion. Zero and values above laminar_core::streaming::MAX_SOURCE_QUEUED_BYTES are rejected at build time.

Source

pub fn pipeline_channel_capacity(self, capacity: usize) -> Self

Source → coordinator channel capacity (default 64).

Source

pub fn source_queue_max_bytes(self, bytes: usize) -> Self

Shared connector FIFO Arrow-byte budget (default 64 MiB), including parked messages. Also caps each producer’s waiting batch; excludes decoder scratch and downstream buffers. Zero and values above crate::MAX_SOURCE_QUEUE_BYTES are rejected at build time.

Source

pub fn pipeline_batch_window(self, window: Duration) -> Self

Micro-batch coalescing window (default 5ms for connectors, 0 for embedded).

Source

pub fn pipeline_drain_budget_ns(self, ns: u64) -> Self

Max drain time per cycle in nanoseconds (default 1ms).

Source

pub fn pipeline_query_budget_ns(self, ns: u64) -> Self

Per-query execution budget in nanoseconds (default 8ms).

Source

pub fn datafusion_memory_limit_bytes(self, bytes: usize) -> Self

Shared per-DB limit for participating DataFusion reservations in bytes (default 256 MiB).

Zero is rejected at build time. DB-owned contexts disable disk spilling. This does not bound direct Arrow allocations, managed state, connector I/O or process RSS.

Source

pub fn reference_table_max_rows(self, rows: usize) -> Self

Set the maximum live row count of each local reference table (default 1,000,000). Zero is rejected at build time. Over-limit updates and snapshots fail atomically.

Source

pub fn reference_table_max_bytes(self, bytes: usize) -> Self

Set each local reference table’s retained-memory charge limit (default 256 MiB). See LaminarConfig::reference_table_max_bytes for the accounting boundary. Zero is rejected at build time.

Source

pub fn materialized_view_max_rows(self, rows: usize) -> Self

Set the live row limit for each local materialized view; must be nonzero. Multisets count distinct rows. Defaults to 1,000,000.

Source

pub fn materialized_view_max_bytes(self, bytes: usize) -> Self

Set each local MV’s retained-memory charge limit; must be nonzero. See LaminarConfig::materialized_view_max_bytes for the accounting boundary.

Source

pub fn materialized_view_read_cache_bytes(self, bytes: usize) -> Self

Set the byte budget of committed view state decoded for reads and cached by digest (default 256 MiB). Zero disables the cache.

Source

pub fn pipeline_max_input_buf_batches(self, batches: usize) -> Self

Per-port operator input-buffer cap in batches (default 256).

Source

pub fn pipeline_max_input_buf_bytes(self, bytes: usize) -> Self

Per-port retained Arrow-byte cap, including source priming (disabled by default). Each fan-out port charges shared backing storage independently. An executed result that cannot fit halts the pipeline before publication; it is never rerun in place.

Source

pub fn pipeline_max_managed_state_bytes(self, bytes: usize) -> Self

Pipeline-wide charged-byte limit for managed operator working state.

This execution-memory envelope is independent of checkpoint storage.

Source

pub fn temporal_join_idle_history_retention(self, retention: Duration) -> Self

Retain temporal right-side history across idle periods for at least this duration.

Source

pub fn source_idle_timeout(self, timeout: Duration) -> Self

Mark inactive watermarked sources and input channels idle after this duration.

Source

pub fn event_time_max_future_skew(self, skew: Duration) -> Self

Event timestamps farther ahead of wall clock do not advance source watermarks. Zero disables the guard.

Source

pub fn pipeline_backpressure_policy(self, policy: BackpressurePolicy) -> Self

Backpressure policy (default Backpressure). ShedOldest is BestEffort only.

Source

pub fn restart_policy(self, policy: RestartPolicy) -> Self

Auto-restart policy used when supervision is enabled.

Source

pub fn register_connector( self, f: impl FnOnce(&ConnectorRegistry) -> Result<(), ConnectorError> + Send + 'static, ) -> Self

Register custom connectors; the callback runs after built-ins are wired and must propagate registration errors. The registry is frozen before Self::build returns.

Source

pub async fn build(self) -> Result<Arc<LaminarDB>, DbError>

Build the LaminarDB instance.

§Errors

Returns DbError if database creation fails.

Trait Implementations§

Source§

impl Debug for LaminarDbBuilder

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for LaminarDbBuilder

Source§

fn default() -> Self

Returns the “default value” for a type. 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
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
§

impl<U> As for U

§

fn as_<T>(self) -> T
where T: CastFrom<U>, U: Sized,

Casts self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read more
§

impl<T> AsAny for T
where T: Any,

§

fn as_any(&self) -> &(dyn Any + 'static)

§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

§

fn type_name(&self) -> &'static str

Gets the type name of self
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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

§

fn compat(self) -> Compat<T> ⓘ
where T: Sized,

Applies the [Compat] adapter by value. Read more
§

fn compat_ref(&self) -> Compat<&T> ⓘ

Applies the [Compat] adapter by shared reference. Read more
§

fn compat_mut(&mut self) -> Compat<&mut T> ⓘ

Applies the [Compat] adapter by mutable reference. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where T: AsAny + ?Sized,

§

fn is<T>(&self) -> bool
where T: AsAny,

Returns true if the boxed type is the same as T. Read more
§

fn downcast_ref<T>(&self) -> Option<&T>
where T: AsAny,

Forward to the method defined on the type Any.
§

fn downcast_mut<T>(&mut self) -> Option<&mut T>
where T: AsAny,

Forward to the method defined on the type Any.
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self> ⓘ

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

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

§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
§

impl<L> LayerExt<L> for L

§

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

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
§

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

§

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

§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The metadata type for pointers and references to this type.
§

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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<KernelType, ArrowType> TryIntoArrow<ArrowType> for KernelType
where ArrowType: TryFromKernel<KernelType>,

§

fn try_into_arrow(self) -> Result<ArrowType, ArrowError>

§

impl<KernelType, ArrowType> TryIntoKernel<KernelType> for ArrowType
where KernelType: TryFromArrow<ArrowType>,

§

fn try_into_kernel(self) -> Result<KernelType, ArrowError>

§

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