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.