Bitmap Filtering in Parallel Hash Join Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvejoin operation efficiencyVSAvoiddisk access waste
Core Design Contradiction:
ProductivityVSLoss of energy

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvejoin operation efficiencyVSAvoidinter-node communication waste
Core Design Contradiction:
ProductivityVSLoss of energy

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedisk access reductionVSAvoidbitmap filter construction
Core Design Contradiction:
Loss of energyVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8145642B2Method and apparatus to support bitmap filtering in a parallel system
Publication Date: 2012.03.27 ORACLE INT CORP
  • US8145642B2 patent drawing
  • US8145642B2 patent drawing
  • US8145642B2 patent drawing

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.