Module differential_dataflow::trace::wrappers::rc

source ·
Expand description

A reference-counted wrapper sharing one owned trace.

The types in this module, TraceBox and TraceRc and meant to parallel RcBox and Rc in std::rc.

The first typee is an owned trace with some information about the cumulative requirements of the shared handles. This is roughly how much progress has each made, so we know which “read capabilities” they have collectively dropped, and when it is safe to inform the trace of such progress.

The second type is a wrapper which presents as a TraceReader, but whose methods for advancing its read capabilities interact with the TraceBox rather than directly with the owned trace. Ideally, instances TraceRc should appear indistinguishable from the underlying trace from a reading perspective, with the exception that the trace may not compact its representation as fast as if it were exclusively owned.


  • A wrapper around a trace which tracks the frontiers of all referees.
  • A handle to a shared trace.