differential_dogs3

Module calculus

Source
Expand description

Traits and implementations for differentiating and integrating collections.

The Differentiate and Integrate traits allow us to move between standard differential dataflow collections, and collections that describe their instantaneous change. The first trait converts a collection to one that contains each change at the moment it occurs, but then immediately retracting it. The second trait takes such a representation are recreates the collection from its instantaneous changes.

These two traits together allow us to build dataflows that maintain computates over inputs that are the instantaneous changes, and then to reconstruct collections from them. The most clear use case for this are “delta query” implementations of relational joins, where linearity allows us to write dataflows based on instantaneous changes, whose “accumluated state” is almost everywhere empty (and so has a low memory footprint, if the system works as planned).

Traits§

  • Produce a collection containing the changes at the moments they happen.
  • Collect instantaneous changes back in to a collection.