mit-pdos / noria

Fast web applications through dynamic, partially-stateful dataflow
Apache License 2.0
4.99k stars 244 forks source link

Support ancestor queries directly through unions and joins #88

Open jonhoo opened 6 years ago

jonhoo commented 6 years ago

We currently implement query_through only on simple stateless operators like filters and projections. However, in theory, it should also be possible to query through multi-ancestor stateless operators such as unions and joins. This would significantly decrease the systems' memory footprint, as we no longer need to materalize intermediate join outputs for nested joins. We do need to be a little careful when implementing it however, as there may be strange interactions with concurrent backfills, but that shouldn't be too complicated. The majority of the work would be to implement "backwards" join processing (i.e., query_through) for unions and joins (they currently only implement "forward" processing through on_input).