Bitmap Filtering in Parallel Hash Join Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current parallelized hash join operations in database systems are inefficient due to unnecessary disk access and inter-node traffic, particularly when determining if hash buckets are empty, leading to wasteful disk probes and excessive communication between nodes.
Innovation Solution
Implementing producer-side bitmap filtering by sending the complete bitmap filter to nodes executing probe-phase producer slaves, allowing them to filter right-hand rows before transmission, and using shared bitmap filter chunks to reduce inter-node traffic and computational expense during the merge operation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional hash join operations are performed in parallel systems, then join operations can be executed, but unnecessary disk access and inter-node traffic occur when probing empty hash buckets
Solution Approach 1:
The bitmap filter is constructed during the build phase before the probe phase begins. This preliminary action marks which hash buckets contain entries, allowing the probe phase to skip empty buckets without accessing the hash table or disk, thus eliminating wasteful disk I/O operations.
Solution Approach 2:
The bitmap filter acts as an intermediary data structure between the hash table and probe operations. It provides a quick lookup mechanism to determine bucket emptiness without accessing the actual hash table contents, reducing unnecessary disk access and inter-node communication.
2Productivity
If traditional hash join operations are performed in parallel systems, then join operations can be executed, but excessive inter-node communication occurs when transmitting rows between nodes
Solution Approach 1:
The bitmap filter is distributed to all nodes before the probe phase begins. This preliminary distribution allows each node to independently filter right-hand rows using the bitmap filter locally, preventing unnecessary transmission of rows that would hash to empty buckets on other nodes, thus reducing inter-node communication overhead.
3Loss of energy
If bitmap filters are implemented in parallel hash joins, then disk access is reduced, but the bitmap filter itself requires memory and construction time
Solution Approach 1:
The bitmap filter is divided into multiple segments or chunks, with each segment corresponding to a portion of the hash table. This segmentation allows the bitmap filter to be constructed and distributed in smaller units during the build phase, reducing the complexity of constructing and managing a single large bitmap filter while still providing comprehensive coverage for probe operations.
Data Source
AI summary
Techniques are described for combining pieces of information from two sources. The techniques may be used to improve the performance, for example, of hash join operations that are parallelized using slaves distributed across multiple nodes. According to one technique, bitmap filtering operations are performed by the probe-phase producer slaves, rather than the probe-phase consumer slaves. To avoid having to merge separately built bitmap filter chunks, the left-hand rows may be sent to every probe-phase consumer slave. Alternatively, the merge operation may be avoided by distributing the rows of one source based on how the other source has been statically partitioned.


