Query Processing through User and Performance Modules
You are viewing an old version of this article. View the current version here.
MariaDB ColumnStore processes an end user query as follows through user to UM to PM:
- A request comes in through the MariaDB interface. MariaDB performs a table operation for all tables needed to fulfill the request and obtains the initial query execution plan from MariaDB.
- ColumnStore utilizes the MariaDB storage engine interface to convert the MariaDB table objects to InfiniDB objects. These objects are then sent to a User Module.
- The User Module converts the MariaDB execution plan and optimizes these objects into an ColumnStore execution plan. The User Module determines the steps needed to run the query and when they can run.
- The User Module consults the Extent Map for the locations of the data needed to satisfy the query and performs extent elimination based on the information contained within the Extent Map.
- The User Module sends commands to one or more Performance Modules to perform block I/O operations.
- The Performance Module(s) carry out predicate filtering, join processing, initial aggregation of data, and sends data back to the User Module for final result set processing.
- The User Module performs final result set aggregation and composes the final result set for the query.
- The User Module returns the result set back for delivery to the user.
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.