Function mz_persist_client::operators::shard_source::shard_source

source ·
pub fn shard_source<'g, K, V, T, D, F, DT, G, C>(
    scope: &mut Child<'g, G, T>,
    name: &str,
    client: impl Fn() -> C,
    shard_id: ShardId,
    as_of: Option<Antichain<G::Timestamp>>,
    snapshot_mode: SnapshotMode,
    until: Antichain<G::Timestamp>,
    desc_transformer: Option<DT>,
    key_schema: Arc<K::Schema>,
    val_schema: Arc<V::Schema>,
    should_fetch_part: F,
    listen_sleep: Option<impl Fn() -> RetryParameters + 'static>,
    start_signal: impl Future<Output = ()> + 'static,
    error_handler: impl FnOnce(String) -> Pin<Box<dyn Future<Output = ()>>> + 'static,
    project: ProjectionPushdown,
) -> (Stream<Child<'g, G, T>, FetchedBlob<K, V, G::Timestamp, D>>, Vec<PressOnDropButton>)
where K: Debug + Codec, V: Debug + Codec, D: Semigroup + Codec64 + Send + Sync, F: FnMut(&PartStats, AntichainRef<'_, G::Timestamp>) -> bool + 'static, G: Scope, G::Timestamp: Timestamp + Lattice + Codec64 + TotalOrder + Sync, T: Refines<G::Timestamp>, DT: FnOnce(Child<'g, G, T>, &Stream<Child<'g, G, T>, (usize, SerdeLeasedBatchPart)>, usize) -> (Stream<Child<'g, G, T>, (usize, SerdeLeasedBatchPart)>, Vec<PressOnDropButton>), C: Future<Output = PersistClient> + Send + 'static,
Expand description

Creates a new source that reads from a persist shard, distributing the work of reading data to all timely workers.

All times emitted will have been advanced by the given as_of frontier. All updates at times greater or equal to until will be suppressed. The map_filter_project argument, if supplied, may be partially applied, and any un-applied part of the argument will be left behind in the argument.

The desc_transformer interposes an operator in the stream before the chosen data is fetched. This is currently used to provide flow control… see usages for details.