Implements the functionalities discusses in #15
WARNING: this PR introduces major changes to almost every class in the framework, so it will likely break all existing forks.
The changes are:
All the pipeline-related operations are now abstracted using PipelineEngine.
Subclasses of PipelineEngine are used to execute every operation in the main query engine, which removes the strong coupling to rxjs.
RxjsPipeline is a subclass of PipelineEngine which implements the pipeline operations using rxjs. It corresponds to the engine behaviour before this PR. RxjsPipeline is used as the default pipeline implementation.
VectorPiepline is a subclass of PipelineEngine which follows the vectorization paradigm: all intermediate results are materialized in main memory. This pipeline impl. is more efficient CPU-wise, but consume more memory.
Added a configurable test suite to test all subclasses of PipelineEngine.
Update the README with a short tutorial on these new functionalities.
Implements the functionalities discusses in #15 WARNING: this PR introduces major changes to almost every class in the framework, so it will likely break all existing forks.
The changes are:
PipelineEngine
.PipelineEngine
are used to execute every operation in the main query engine, which removes the strong coupling torxjs
.RxjsPipeline
is a subclass ofPipelineEngine
which implements the pipeline operations usingrxjs
. It corresponds to the engine behaviour before this PR.RxjsPipeline
is used as the default pipeline implementation.VectorPiepline
is a subclass ofPipelineEngine
which follows the vectorization paradigm: all intermediate results are materialized in main memory. This pipeline impl. is more efficient CPU-wise, but consume more memory.PipelineEngine
.