Better resource utilization for caching global joins
Details
| Detail name | Value |
|---|---|
| Changelog Number | 6975 |
| Type | Improvement |
| Status | Resolved |
| Fix Versions | Exasol 6.2.0 |
| Resolution Date | 2019-05-13 |
Background
Several types of global join implementations exist in Exasol. The so called caching global join implements join result caching in TEMP. Join results of any first occurring join keys are inserted in a local dictionary and used later to answer join requests to the same keys in the local pipeline. This saves network bandwidth and CPU resources if the same keys occur multiple times (caching potential).
As the cache dictionary (IndexCache) is read/written simultanously, CPU utilization was restricted to a certain number of parallel threads. This did not scale well with modern nodes having 40 or more worker threads available.
Improvement
The caching global join has been optimized to better utilize CPU cores (thread parallelism) and hence reduce query durations respectively.