Execution Engine Overview

In a database system, the execution engine takes the query plan generated by the optimizer and retrieves data rows according to the plan.

YMatrix currently supports the following execution engines:

  • Greenplum-based Volcano execution engine
  • YMatrix-developed vectorized execution engine
Execution Engine Description
Volcano Execution Engine The Volcano execution engine uses the Volcano model, also known as the pull-based execution model. After SQL queries are parsed in the database, a query tree is generated. Each node in the tree represents an algebraic operator. During query execution, computation proceeds top-down on the query tree, while data is pulled and processed bottom-up.
Vectorized Execution Engine The vectorized execution engine is a high-performance engine designed specifically for column-oriented storage formats such as MARS3, MARS2, and AOCO. For common queries, it delivers one to two orders of magnitude better performance compared to traditional row-oriented execution engines.
The performance benefits of the vectorized execution engine over scalar execution engines come from the following aspects:
1. Batch processing to reduce execution overhead
2. Processing in small batches to improve data locality and cache utilization, enhancing data access performance
3. Selecting optimal processing paths based on data characteristics
4. Reducing function call overhead and leveraging CPU SIMD (Single Instruction, Multiple Data) instructions for further efficiency gains
5. Processing data column by column and loading only required columns to avoid unnecessary I/O
The vectorized executor automatically integrates with the Postgres traditional optimizer. GPORCA optimizer must be manually enabled.