Query engines that are dynamically instantiated for each query and discarded upon competition.

Goal: select the optimal engine and configuration on a per-query basis to eliminated inefficiencies of all-purpose configurations and resource overprovisioning.

This opens up the possibility to use different engines depending on factors like:

  • Data types (e.g., relational, semi-structured, graphs)
  • File formats (e.g., Arrow, Parquet, CVS, JSON, etc.)
  • Expected performance (e.g., based on previous profiling)
  • Feature set (e.g., availability of required statistical functions)