Execution Engine Overview

In the database system, the execution engine is responsible for taking over the query plan created by the optimizer and retrieving data rows in the way specified by the optimizer.

Currently YMatrix supports the use of several execution engines:

  • Volcanic engine based on Greenplum
  • YMatrix's self-developed vectorized execution engine
Execution Engine Description
Volcanic Execution Engine Volcanic Execution Engine uses a volcanic model, also known as a pull-based execution model. After parsing in the database, a query tree will be generated. Each execution node of the query tree is an algebraic operator (Operator). When query execution, it will be calculated from the top to the bottom of the query tree, and the data will be pulled from the bottom to the top
Vectorized execution engine Vectorized execution engine is a high-performance execution engine specially designed for column-oriented storage engines (such as MARS3, MARS2, and AOCO). For common queries, there are one to two orders of magnitude performance improvements compared to traditional execution engines for row processing.
The performance benefits of vectorized executors compared to scalar execution engines come from the following aspects:
1. Batch processing reduces execution overhead
2. Small batch processing improves data popularity, improves data access performance by keeping data in the CPU cache
3. Select the best processing path based on data characteristics
4. Reduce function call overhead and can further improve efficiency by utilizing the CPU's SIMD (Single Instruction, Multiple Data) instructions
5. Column-by-column processing loading on demand to avoid loading useless data