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 (F057).
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();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 UnwindSafe for StreamJoinConfig
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§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,
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§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.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.