Description
See CBSE-11694.
When a hash join is being done, a large number (> 1.4 million) of documents are being retrieved from the probe side of the hash join. Then the join itself eliminated > 99.9% of these document, and the join only produced ~1000 results. The fetch of the large number of documents accounted for majority of the execution time.
Many relational database systems support using a bit filter (bloom filter) to reduce the number of tuples from the probe side of a hash join. We can adapt this approach and create a bit filter from the build side of the hash join, and use that to filter out documents after the index scan on the probe side, which should reduce the number of fetches required, thus improving query execution time.
Attachments
For Gerrit Dashboard: MB-51928 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
174074,13 | MB-51928 Add support for join filter in hash join | master | query | Status: MERGED | +2 | +1 |
174075,2 | MB-51928 Add support for join filter in hash join | master | query-ee | Status: MERGED | +2 | +1 |
174617,3 | MB-51928 Costing changes for join filter | master | query | Status: MERGED | +2 | +1 |
174618,3 | MB-51928 Costing changes for join filter | master | query-ee | Status: MERGED | +2 | +1 |
174659,2 | MB-51817 / MB-51928 Utilize information on index filter and index join filter for index selection | master | query | Status: MERGED | +2 | +1 |
174662,4 | MB-51817 / MB-51928 Update | master | query | Status: MERGED | +2 | +1 |
174699,2 | MB-51817 / MB-51928 More Update | master | query | Status: MERGED | +2 | +1 |
179119,2 | MB-51928 Additional fixes for join filter | master | query | Status: MERGED | +2 | +1 |
179120,2 | MB-51928 Additional fixes for join filter | master | query-ee | Status: MERGED | +2 | +1 |