Skip to content
This repository has been archived by the owner on Dec 16, 2022. It is now read-only.

Approaches

bala219 edited this page Mar 11, 2020 · 2 revisions

Problem statement

Execution time increases with compilation. But, compilation gives better performance. On the other hand, pre-compiled headers provide quickstart for execution but have runtime disadvantages.

Approach

Combining compilation and pre-compiled execution. Pre-compiled execution provides quickstart for execution with compilation running on the background --> hiding compilation with pre-compiled headers

Possible options

  1. compile complete query while partial results are generated by pre-compiled headers
  2. partial compilation of a query while pre-compiled headers finish the remaining operators

compiling the complete query

user is given partial results with slower execution until compiled, afterward, faster results are produced advantages

  • partial results are generated; i.e. fast response time
  • no need for data transfer from one paradigm to another
  • both the models can work in parallel

disadvantage

  • generation of complete query requires more compilation time
  • Data sharing is problematic across these paradigms
  • Resources are wasted on both the paradigms as they share the execution
  • Optimal execution from both the paradigms are not combined, i.e. advantage of one paradigm could be counteracted by another

Compiling partial query

results from pre-compiled headers are streamed into compiled execution once partial compilation ends. Pipeline-breakers can be used to connect from one paradigm to another.

advantages

  • Complete resource utilization by compilation
  • partial compilation leads to reduced compilation time than compiling a complete query

disadvantages

  • Requires the right point to connect these paradigms; else leads to under-utilization of resources
  • Transfer of result from one paradigm to another is problematic as the formats have to be changed
  • Queries without pipeline-breakers cannot stream results
  • pre-compiled headers process in a column-oriented and compiled executes in tuple-at-a-time, this conversion is again problematic
  • requires the complete data to be produced by pre-compiled headers to feed into compiled execution
Clone this wiki locally