Shared nothing
The most powerful MPP architecture, avoiding common bottlenecks!
Massively Parallel Data Processing
EXASolution was developed as a parallel system and is constructed according to the shared-nothing principle. Data is distributed across all nodes in a cluster. When responding to queries, all nodes co-operate and special parallel algorithms ensure that most data is processed locally in each individual node's main memory.
If a query is sent to the system, it is first accepted by the node the client is connected to:

The query is then distributed to all nodes. Intelligent algorithms optimize the query, determine the best plan of action and generate needed indices on the fly. The EXASOL optimizer decides whether the data should be reorganized for the specific profile.

The system then processes the partial results based the local datasets. This processing paradigm is also known as SPMD (single program multiple data). All cluster nodes operate on an equal basis, there is no Master Node.

The global query result is delivered back to the user via connection nodes.

Example of parellel join execution
-
- SELECT
- customer.last_name, city.name FROM customer, city
- WHERE
- customer.city_id = city.id AND city.name LIKE 'New%';
Both tables are evenly distributed across the nodes:

Step 1: Filtering
At first the filter will be applied to the smaller table CITIES. Only the cities beginning with 'NEW' will take part on further operations:

Step 2: Matching
Then, for each city the system looks up customers with the matching city-id. If no special distribution is given, matching is performed across all nodes:

Step 3: Resultset
The generated result set remains locally on the corresponding nodes. If the query is part of a multipath SQL, this part of the execution is finished at this point. If the result set has to be sent to a user, this will be done in portions requested by the corresponding frontend. Only these portions will be transferred to the connection node:
















