Columnar Database Histogram Query Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database management systems face inefficiencies in data storage and retrieval due to increasing data volumes, despite advancements like columnar databases, which still require optimizations to reduce complexity and storage requirements while improving query processing efficiency.

Innovation Solution

Implementing a height-balanced histogram for columnar databases to determine which data blocks need to be read during query processing, using probabilistic data structures and bucket range sizes to selectively access data, thereby reducing unnecessary read operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If columnar database tables are used to reduce access operations, then query efficiency is improved, but data storage complexity increases

Engineering Contradiction:
Improvequery efficiencyVSAvoiddata storage complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments data storage into columnar units and introduces histogram-based segmentation to divide columns into buckets with different access frequencies. This allows the system to manage complexity by organizing data into manageable segments that can be accessed independently based on query patterns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by pre-computing histograms that capture the access frequency distribution of column data before queries are executed. These pre-computed statistics enable the system to make informed decisions about data block access patterns, reducing the need for complex real-time analysis during query execution.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If more data is stored and managed, then information capacity increases, but maintenance cost increases

Engineering Contradiction:
Improveinformation capacityVSAvoidmaintenance cost
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

The patent applies parameter changes by dynamically adjusting data block access patterns based on histogram-derived access frequency parameters. The system transforms raw data into histogram statistics that reveal access patterns, then uses these parameters to optimize which data blocks are accessed and how frequently, reducing unnecessary I/O operations and maintenance costs as data volume grows.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If histogram-based selective access is implemented, then read operations are minimized, but computational overhead increases

Engineering Contradiction:
Improveread operation efficiencyVSAvoidcomputational overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements partial action by computing histograms selectively based on actual query workloads rather than maintaining complete histograms for all data uniformly. The system performs histogram computation and analysis only on portions of data that are actually accessed or likely to be accessed, avoiding the computational overhead of processing entire datasets when only partial data is needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP3299972B1Efficient query processing using histograms in a columnar database
Publication Date: 2019.08.21 AMAZON TECH INC
  • EP3299972B1 patent drawingFigure 1
  • EP3299972B1 patent drawingFigure 2
  • EP3299972B1 patent drawingFigure 3

AI summary

A probabilistic data structure is generated for efficient query processing using a histogram for unsorted data in a column of a columnar database. A bucket range size is determined for multiples buckets of a histogram of a column in a columnar database table. In at least some embodiments, the histogram may be a height-balanced histogram. A probabilistic data structure is generated to indicate for which particular buckets in the histogram there is a data value stored in the data block. When an indication of a query directed to the column for select data is received, the probabilistic data structure for each of the data blocks storing data for the column may be examined to determine particular ones of the data blocks which do not need to be read in order to service the query for the select data.