Database Join Operations with Bloom Filters for Early Row Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Standard join operators in database management systems fetch and process a large number of candidate rows, many of which are later disqualified, wasting processing resources and memory, especially in complex joins like nested joins.

Innovation Solution

Implement early filtering using Bloom filters or probabilistic data structures to prune unqualified rows before the join operation, generating producer and consumer filter maps based on join conditions to reduce the number of rows processed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a standard join operator fetches all candidate rows before filtering, then complete result sets can be generated, but processing resources and memory are wasted on rows that will be disqualified

Engineering Contradiction:
Improvecompleteness of result setVSAvoidprocessing resource waste
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by generating Bloom filters before the join operation executes. The Bloom filters are created from the inner table data and join conditions, then used to pre-filter candidate rows from the outer table. This preliminary filtering action prevents wasted processing on rows that would be disqualified anyway, while still ensuring complete results by maintaining the ability to fetch full rows for qualified candidates.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces Bloom filters as an intermediary between the join operator and the candidate row fetching process. This intermediary structure allows the system to efficiently test whether candidate rows qualify for the join without fully processing them. The Bloom filter acts as a mediator that filters out non-matching rows early, reducing the workload on the main join operator while preserving result completeness.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If early filtering is applied using Bloom filters, then the number of rows processed is reduced, but additional processing steps are required to generate and apply the filters

Engineering Contradiction:
Improvequery execution rateVSAvoidfilter generation and application overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The Bloom filters are generated in advance during query planning, before the actual join execution. This preliminary generation allows the filtering mechanism to be ready when needed, avoiding the overhead of generating filters during the critical execution path. The filters are then applied efficiently during the scan operation, improving overall productivity without adding significant complexity to the execution flow.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system performs self-service by automatically generating and managing Bloom filters without requiring manual intervention. The query optimizer automatically determines when to apply early filtering, generates the appropriate Bloom filters based on join conditions, and integrates them into the execution plan. This self-managing approach reduces the operational complexity despite the additional processing steps.

Inventive Principle:
Principle #25Self-service

3Reliability

If all candidate rows are fetched for join evaluation, then accurate join results are produced, but memory utilization increases due to storing disqualified rows

Engineering Contradiction:
Improveaccuracy of join resultsVSAvoidmemory utilization
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts the filtering function from the main join operator and performs it separately using Bloom filters. By taking out the qualification check and performing it beforehand, the system identifies and sets aside the disqualified rows before they consume memory in the join processing. Only the qualified candidate rows are retained for the actual join operation, significantly reducing memory utilization while preserving result accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The qualification filtering is performed in advance using Bloom filters before the join operation stores rows in memory. This preliminary action allows the system to identify which rows will actually be needed for the join result, so only those rows are fetched and stored in memory. The accurate join results are still produced because the Bloom filter testing ensures all qualified rows are identified, but memory usage is reduced by eliminating storage of disqualified rows.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12380109B2Database join operations with early filtering
Publication Date: 2025.08.05 GOOGLE LLC
  • US12380109B2 patent drawing
  • US12380109B2 patent drawing
  • US12380109B2 patent drawing

AI summary

Aspects of the disclosure are directed to early filtering of candidate rows for a join operator of a query statement before the join operator is evaluated to generate a result set. Early filtering, e.g., before execution of the join operator, reduces the number of candidate rows fetched from a database during a join operator, which can improve the rate at which queries including join operators are executed by a DBMS for the database. One or more Bloom filters or other probabilistic data structures can be produced and consumed according to different join conditions, allowing for early pruning of unqualified rows during a database scan operation.