Hi all, In my current research project, I am interested in studying and creating query plans that prioritize latency of individual answers rather than the throughput of the overall query in order to promote progressive query answering. For that, we want to create a new plan, an "interactive" plan to supplement the original blocking plan that the planner creates. An example usage of interactive plan might be the use of an index to expedite the processing of a group of values that will be useful earlier to the user. I am trying to implement this on top of Asterix DB and I am currently in the process of finalizing my design. One thing that I am debating with is, where do I put the logic of rewriting the blocking plan into the interactive plan? Several options come to mind:- 1. Doing it after the final physical plan has been generated by the planner. 2. Doing it at the beginning, where a compiler compiles two plans - one for the interactive method and the other for the blocking method. 3. Doing it in the middle, where some logical rewrites have taken place, but the physical operators haven't been finalized yet.
Any opinions/thoughts about the matter are highly welcome! Happy to provide more details if necessary. -- Best Regards, Pratyoy