pub struct StreamJoinConfig {
pub left_key_column: String,
pub right_key_column: String,
pub time_bound_ms: i64,
pub join_type: JoinType,
pub operator_id: Option<String>,
pub row_encoding: JoinRowEncoding,
pub asymmetric_compaction: bool,
pub idle_threshold_ms: i64,
pub per_key_tracking: bool,
pub key_idle_threshold_ms: i64,
pub build_side_pruning: bool,
pub build_side: Option<JoinSide>,
}Expand description
Configuration for stream-stream joins.
Provides fine-grained control over join behavior and optimizations. Use the builder pattern for convenient construction.
§Example
use laminar_core::operator::stream_join::{StreamJoinConfig, JoinType, JoinRowEncoding};
use std::time::Duration;
let config = StreamJoinConfig::builder()
.left_key_column("order_id")
.right_key_column("order_id")
.time_bound(Duration::from_secs(3600))
.join_type(JoinType::Inner)
.row_encoding(JoinRowEncoding::CpuFriendly)
.build()
.unwrap();Fields§
§left_key_column: StringLeft stream key column name.
right_key_column: StringRight stream key column name.
time_bound_ms: i64Time bound for matching (milliseconds).
join_type: JoinTypeType of join to perform.
operator_id: Option<String>Operator ID for checkpointing.
row_encoding: JoinRowEncodingRow encoding strategy.
asymmetric_compaction: boolEnable asymmetric compaction optimization.
idle_threshold_ms: i64Threshold for considering a side “finished” (ms).
per_key_tracking: boolEnable per-key cleanup tracking.
key_idle_threshold_ms: i64Threshold for idle key cleanup (ms).
build_side_pruning: boolEnable build-side pruning.
build_side: Option<JoinSide>Which side to use as build side (None = auto-select based on statistics).
Implementations§
Source§impl StreamJoinConfig
impl StreamJoinConfig
Sourcepub fn builder() -> StreamJoinConfigBuilder
pub fn builder() -> StreamJoinConfigBuilder
Creates a new configuration builder.
Trait Implementations§
Source§impl Clone for StreamJoinConfig
impl Clone for StreamJoinConfig
Source§fn clone(&self) -> StreamJoinConfig
fn clone(&self) -> StreamJoinConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StreamJoinConfig
impl Debug for StreamJoinConfig
Auto Trait Implementations§
impl Freeze for StreamJoinConfig
impl RefUnwindSafe for StreamJoinConfig
impl Send for StreamJoinConfig
impl Sync for StreamJoinConfig
impl Unpin for StreamJoinConfig
impl UnsafeUnpin for StreamJoinConfig
impl UnwindSafe for StreamJoinConfig
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.