Struct dataflow_types::types::sources::persistence::SourcePersistDesc[][src]

pub struct SourcePersistDesc {
    pub upper_seal_ts: u64,
    pub since_ts: u64,
    pub primary_stream: String,
    pub timestamp_bindings_stream: String,
    pub envelope_desc: EnvelopePersistDesc,
}
Expand description

The details needed to make a source that uses an external super::SourceConnector persistent.

Fields

upper_seal_ts: u64

The current upper seal timestamp of all involved streams.

NOTE: This timestamp is determined when the coordinator starts up or when the source is initially created. When a source is actively writing to this stream, the seal timestamp will progress beyond this timestamp.

This is okay for now because we only want to allow one source instantiation for persistent sources, meaning the flow is usually this:

  1. coordinator determines seal timestamp
  2. seal timestamps for a source are sent to dataflow when rendering a source
  3. coordinator (or anyone) never looks at this timestamp again.

And when we restart, we start from step 1., at which time we are guaranteed not to have a source running already.

since_ts: u64

The current compaction frontier (aka since) of all involved streams.

NOTE: This timestamp is determined when the coordinator starts up or when the source is initially created. When a source is actively writing to this stream and allowing compaction, this will progress beyond this timestamp.

This is okay for now because we only want to allow one source instantiation for persistent sources, meaning the flow is usually this:

  1. coordinator determines since timestamp
  2. timestamps for a source are sent to dataflow when rendering a source
  3. coordinator (or anyone) never looks at this timestamp again.

And when we restart, we start from step 1., at which time we are guaranteed not to have a source running already.

primary_stream: String

Name of the primary persisted stream of this source. This is what a consumer of the persisted data would be interested in while the secondary stream(s) of the source are an internal implementation detail.

timestamp_bindings_stream: String

Persisted stream of timestamp bindings.

envelope_desc: EnvelopePersistDesc

Any additional details that we need to make the envelope logic stateful.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Compare self to key and return true if they are equal.

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

Upcasts this ProgressEventTimestamp to Any. Read more

Returns the name of the concrete type of this object. Read more

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more