Bloom Filters for Columnar Database Query Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data management systems face inefficiencies in storing and retrieving large amounts of data, particularly in columnar databases, due to the high number of access operations required, which can lead to increased complexity and costs, despite advancements like columnar database tables.
Innovation Solution
Implementing bloom filters and height-balanced histograms in columnar databases to reduce the number of data blocks that need to be read during query processing by generating probabilistic data structures that indicate the presence of data values, thereby minimizing unnecessary read operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If columnar database tables are used to reduce access operations, then query efficiency is improved, but the complexity of data management increases
Solution Approach 1:
The patent applies preliminary action by pre-computing and storing bloom filters and height-balanced histograms for each data block during data loading or maintenance operations. These probabilistic data structures are prepared in advance so that during query processing, the system can quickly filter out irrelevant data blocks without performing complex real-time computations, thus resolving the contradiction between query efficiency and management complexity
Solution Approach 2:
The patent introduces bloom filters and height-balanced histograms as intermediary data structures that mediate between the query processor and the actual data blocks. These intermediaries provide probabilistic guidance to identify candidate data blocks that may contain the queried values, reducing the need for exhaustive scanning of all data blocks and simplifying the overall query management process
2Quantity of substance
If more data is stored to meet organizational needs, then information capacity increases, but storage costs and system complexity increase
Solution Approach 1:
The patent applies preliminary action by pre-computing and storing bloom filters and height-balanced histograms for each data block during data loading or maintenance operations. These probabilistic data structures are prepared in advance so that during query processing, the system can quickly filter out irrelevant data blocks without performing complex real-time computations, thus resolving the contradiction between query efficiency and management complexity
Solution Approach 2:
The patent introduces bloom filters and height-balanced histograms as intermediary data structures that mediate between the query processor and the actual data blocks. These intermediaries provide probabilistic guidance to identify candidate data blocks that may contain the queried values, reducing the need for exhaustive scanning of all data blocks and simplifying the overall query management process
3Reliability
If traditional row-oriented storage is used, then data integrity is maintained, but access operations become inefficient for column-based queries
Solution Approach 1:
The patent applies segmentation by dividing the data storage into column-oriented data blocks, where each data block contains values for a specific column. This segmentation allows the system to store and retrieve only the relevant column data needed for queries, dramatically improving access operation efficiency while maintaining data integrity through the structured organization of segmented data blocks
Data Source
AI summary
A bloom filter is generated for efficient query processing for unsorted data in a column of a columnar database. Bloom filters represented as bitmaps are generated for data blocks storing data for a column of a columnar database table. An indication of a query directed toward the column is received and the bloom filter for each data block is examined to determine which ones of the data blocks do not need to be read in order to service the query for the select data. Data is then read from the data blocks storing data for the column excepting the ones which do not need to be read.


