pub struct RelationChunkDriver<C> { /* private fields */ }Expand description
Long-lived SourceDriver over a RelationChunkSource.
Same windowing model as RowChunkDriver, emitting relation upserts.
Implementations§
Source§impl<C> RelationChunkDriver<C>
impl<C> RelationChunkDriver<C>
Sourcepub fn sunk_count(&self) -> u64
pub fn sunk_count(&self) -> u64
Relations successfully sunk (pre-transform input count).
Trait Implementations§
Source§impl<C> SourceDriver for RelationChunkDriver<C>where
C: RelationChunkSource,
impl<C> SourceDriver for RelationChunkDriver<C>where
C: RelationChunkSource,
Source§fn poll_work<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<Vec<PositionedEvent<Self::Position>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn poll_work<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<Vec<PositionedEvent<Self::Position>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Next work items (row and/or relation changes). May be empty on idle.
Source§fn advance_watermark<'life0, 'async_trait>(
&'life0 mut self,
_position: Self::Position,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn advance_watermark<'life0, 'async_trait>(
&'life0 mut self,
_position: Self::Position,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Mark
position sink-safe. May be in-memory only, broker offset commit, or
both — durable store writes belong in persist_checkpoint
unless policy is CheckpointPolicy::AdvanceOnly.Source§fn is_finished(&self) -> bool
fn is_finished(&self) -> bool
Whether the driver will produce no more work (EOF).
Source§fn checkpoint_policy(&self) -> CheckpointPolicy
fn checkpoint_policy(&self) -> CheckpointPolicy
Checkpoint persistence policy. Default:
CheckpointPolicy::PersistAfterAdvance.Source§fn note_sunk_events(&mut self, count: u64)
fn note_sunk_events(&mut self, count: u64)
Notify the driver that
count input (pre-transform) events are
accounted for before advance_watermark. Read moreSource§fn between_events<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ControlSignal>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn between_events<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ControlSignal>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Polled between apply cycles; return control signals to handle before the
next
poll_work.Source§fn on_schema_refresh<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn on_schema_refresh<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Handle
ControlSignal::SchemaRefresh. Default: no-op.Source§fn on_adhoc_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_tables: &'life1 [String],
_apply: &'life2 dyn AdhocApply,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_adhoc_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_tables: &'life1 [String],
_apply: &'life2 dyn AdhocApply,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn stop_reason(&self) -> Option<StopReason>
fn stop_reason(&self) -> Option<StopReason>
If
Some, the runtime stops after draining in-flight apply work.Source§fn persist_checkpoint<'life0, 'async_trait>(
&'life0 mut self,
_position: Self::Position,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn persist_checkpoint<'life0, 'async_trait>(
&'life0 mut self,
_position: Self::Position,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Persist a sink-safe checkpoint (called after successful sink +
advance_watermark according to
CheckpointPolicy). Default: no-op.Source§fn read_progress_for_persist<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<Option<Self::Position>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn read_progress_for_persist<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<Option<Self::Position>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Optional sink-safe position to persist when
CheckpointPolicy::IntervalWhenDrained finds the apply window empty
but nothing was advanced since the last persist (e.g. filtered-only
binlog traffic that advanced the read cursor with no work items). Read moreAuto Trait Implementations§
impl<C> Freeze for RelationChunkDriver<C>where
C: Freeze,
impl<C> RefUnwindSafe for RelationChunkDriver<C>where
C: RefUnwindSafe,
impl<C> Send for RelationChunkDriver<C>where
C: Send,
impl<C> Sync for RelationChunkDriver<C>where
C: Sync,
impl<C> Unpin for RelationChunkDriver<C>where
C: Unpin,
impl<C> UnsafeUnpin for RelationChunkDriver<C>where
C: UnsafeUnpin,
impl<C> UnwindSafe for RelationChunkDriver<C>where
C: UnwindSafe,
Blanket Implementations§
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