timely::dataflow::scopes::child

Type Alias Iterative

Source
pub type Iterative<'a, G, T> = Child<'a, G, Product<<G as ScopeParent>::Timestamp, T>>;
Expand description

Type alias for iterative child scope.

Aliased Type§

struct Iterative<'a, G, T> {
    pub subgraph: &'a RefCell<SubgraphBuilder<<G as ScopeParent>::Timestamp, Product<<G as ScopeParent>::Timestamp, T>>>,
    pub parent: G,
    pub logging: Option<TypedLogger<CapacityContainerBuilder<Vec<(Duration, TimelyEvent)>>, TimelyEvent>>,
    pub progress_logging: Option<Logger<CapacityContainerBuilder<Vec<(Duration, TimelyProgressEvent<Product<<G as ScopeParent>::Timestamp, T>>)>>>>,
}

Fields§

§subgraph: &'a RefCell<SubgraphBuilder<<G as ScopeParent>::Timestamp, Product<<G as ScopeParent>::Timestamp, T>>>

The subgraph under assembly.

§parent: G

A copy of the child’s parent scope.

§logging: Option<TypedLogger<CapacityContainerBuilder<Vec<(Duration, TimelyEvent)>>, TimelyEvent>>

The log writer for this scope.

§progress_logging: Option<Logger<CapacityContainerBuilder<Vec<(Duration, TimelyProgressEvent<Product<<G as ScopeParent>::Timestamp, T>>)>>>>

The progress log writer for this scope.

Implementations

Source§

impl<G, T> Child<'_, G, T>

Source

pub fn index(&self) -> usize

This worker’s unique identifier.

Ranges from 0 to self.peers() - 1.

Source

pub fn peers(&self) -> usize

The total number of workers in the computation.

Trait Implementations§

Source§

impl<'a, G: Scope, T: Timestamp> LoopVariable<'a, G, T> for Iterative<'a, G, T>

Source§

fn loop_variable<C: Container + Data>( &mut self, summary: T::Summary, ) -> (Handle<Iterative<'a, G, T>, C>, StreamCore<Iterative<'a, G, T>, C>)

Creates a StreamCore and a Handle to later bind the source of that StreamCore. Read more
Source§

impl<G, T> AsWorker for Child<'_, G, T>

Source§

fn config(&self) -> &Config

Returns the worker configuration parameters.
Source§

fn index(&self) -> usize

Index of the worker among its peers.
Source§

fn peers(&self) -> usize

Number of peer workers.
Source§

fn allocate<D: Exchangeable>( &mut self, identifier: usize, address: Rc<[usize]>, ) -> (Vec<Box<dyn Push<D>>>, Box<dyn Pull<D>>)

Allocates a new channel from a supplied identifier and address. Read more
Source§

fn pipeline<D: 'static>( &mut self, identifier: usize, address: Rc<[usize]>, ) -> (ThreadPusher<D>, ThreadPuller<D>)

Constructs a pipeline channel from the worker to itself. Read more
Source§

fn broadcast<D: Exchangeable + Clone>( &mut self, identifier: usize, address: Rc<[usize]>, ) -> (Box<dyn Push<D>>, Box<dyn Pull<D>>)

Allocates a broadcast channel, where each pushed message is received by all.
Source§

fn new_identifier(&mut self) -> usize

Allocates a new worker-unique identifier.
Source§

fn peek_identifier(&self) -> usize

The next worker-unique identifier to be allocated.
Source§

fn log_register(&self) -> RefMut<'_, Registry>

Provides access to named logging streams.
Source§

fn logging(&self) -> Option<TimelyLogger>

Provides access to the timely logging stream.
Source§

impl<G, T> Clone for Child<'_, G, T>

Source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<G, T> Scheduler for Child<'_, G, T>

Source§

fn activations(&self) -> Rc<RefCell<Activations>>

Provides a shared handle to the activation scheduler.
Source§

fn activator_for(&self, path: Rc<[usize]>) -> Activator

Constructs an Activator tied to the specified operator address.
Source§

fn sync_activator_for(&self, path: Vec<usize>) -> SyncActivator

Constructs a SyncActivator tied to the specified operator address.
Source§

impl<G, T> Scope for Child<'_, G, T>

Source§

fn name(&self) -> String

A useful name describing the scope.
Source§

fn addr(&self) -> Rc<[usize]>

A sequence of scope identifiers describing the path from the worker root to this scope.
Source§

fn addr_for_child(&self, index: usize) -> Rc<[usize]>

A sequence of scope identifiers describing the path from the worker root to the child indicated by index.
Source§

fn add_edge(&self, source: Source, target: Target)

Connects a source of data with a target of the data. This only links the two for the purposes of tracking progress, rather than effect any data movement itself.
Source§

fn add_operator_with_indices( &mut self, operator: Box<dyn Operate<Self::Timestamp>>, local: usize, global: usize, )

Adds a child Operate to the builder’s scope using supplied indices. Read more
Source§

fn allocate_operator_index(&mut self) -> usize

Allocates a new scope-local operator index. Read more
Source§

fn scoped<T2, R, F>(&mut self, name: &str, func: F) -> R
where T2: Timestamp + Refines<T>, F: FnOnce(&mut Child<'_, Self, T2>) -> R,

Creates a dataflow subgraph. Read more
Source§

fn add_operator(&mut self, operator: Box<dyn Operate<Self::Timestamp>>) -> usize

Adds a child Operate to the builder’s scope. Returns the new child’s index.
Source§

fn add_operator_with_index( &mut self, operator: Box<dyn Operate<Self::Timestamp>>, index: usize, )

Adds a child Operate to the builder’s scope using a supplied index. Read more
Source§

fn iterative<T, R, F>(&mut self, func: F) -> R
where T: Timestamp, F: FnOnce(&mut Child<'_, Self, Product<<Self as ScopeParent>::Timestamp, T>>) -> R,

Creates a iterative dataflow subgraph. Read more
Source§

fn region<R, F>(&mut self, func: F) -> R
where F: FnOnce(&mut Child<'_, Self, <Self as ScopeParent>::Timestamp>) -> R,

Creates a dataflow region with the same timestamp. Read more
Source§

fn region_named<R, F>(&mut self, name: &str, func: F) -> R
where F: FnOnce(&mut Child<'_, Self, <Self as ScopeParent>::Timestamp>) -> R,

Creates a dataflow region with the same timestamp. Read more
Source§

impl<G, T> ScopeParent for Child<'_, G, T>

Source§

type Timestamp = T

The timestamp associated with data in this scope.