Principles
Before configuring KOVAE, you are advised to understand the running principles and internal execution process of the KOVAE system. KOVAE optimizes the execution plans of SQL queries, leverages the advantages of parallel processing mechanism and column-store structure to efficiently process SQL queries.
SQL statements from the client are received by the MySQL connector, passed through the parser and optimizer, and generated into execution plans for the query. According to the rules, execution plans are either executed by the default executor or offloaded to KOVAE for execution. After the execution is complete, the result set is returned to the client. Figure 1 shows the data flow of SQL statements and result sets after execution.
Figure 2 shows the KOVAE internal execution process.
The TableScan operator uses multiple worker threads to concurrently invoke the API for InnoDB table reading and saves the data in the cache queue of the TableScan operator.
Upper-layer operators (such as Agg, Sort, HashJoin or NestedLoopJoin) of the TableScan operator obtain the data from the data cache queue of the lower-layer operator for processing. Each upper-layer operator can contain multiple worker threads for parallel processing, which can give full play to the multi-core advantage of Arm servers.
MySQL InnoDB uses the row-store structure while KOVAE uses the column-store structure. When calculating a specified column, data in the same column is adjacent in the memory which makes data processing more efficient.

