Generalize arrange to change type of records#300
Generalize arrange to change type of records#300frankmcsherry wants to merge 1 commit intomasterfrom
Conversation
| /// Arranges a differential dataflow collection with custom user logic. | ||
| /// | ||
| /// This method generalizes `arrange` in that the output type may differ | ||
| /// from the input type, and the user is allow to perform logic as the |
|
Brief thoughts on It's a bit weird, because this operator would generalize to "something that takes arrangements as input" which .. well at the moment it is what makes arrangements, so clearly there is some unpicking to do there. The goal, though, is to avoid having so many copy/paste instances of "operator that forms batches and maintains traces" as we have in |
This PR introduces a generalization to the
arrangemethod, which now allows the user to interpose between the batch formation and accepting the batch into the output trace. In particular, the input and output trace formats may be different, which allows the user the ability to perform some non-standard translation, for example playing a state machine forward and recording the transitions in the output.The vanilla
arrange_coreoperator is now implemented using "logic" that just passes through the input batch. It looks like so:Other operators like
upsertandreducecould in principle be ported to this framework, but I wanted to float this first before doing a massive re-write.cc: @ruchirK @petrosagg