Module timely::dataflow::channels::pact [] [src]

Parallelization contracts, describing how data must be exchanged between operators. Parallelization contracts, describing requirements for data movement along dataflow edges.

Pacts describe how data should be exchanged between workers, and implement a method which creates a pair of Push and Pull implementors from an A: Allocate. These two endpoints respectively distribute and collect data among workers according to the pact.

The only requirement of a pact is that it not alter the number of D records at each time T. The progress tracking logic assumes that this number is independent of the pact used.

Structs

Exchange

An exchange between multiple observers by data

Pipeline

A direct connection

Puller

Wraps a Message<T,D> puller to provide a Pull<(T, Content<D>)>.

Pusher

Wraps a Message<T,D> pusher to provide a Push<(T, Content<D>)>.

TimeExchange

An exchange between multiple observers by time and data

Traits

ParallelizationContract

A ParallelizationContract allocates paired Push and Pull implementors.