Dynamic FPGA Query Accelerators for Columnar Database Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies face challenges in efficiently processing large data queries on columnar databases, particularly in terms of speed and efficiency, due to the limitations of traditional CPU-based systems in handling complex queries on big data sets.

Innovation Solution

A dynamic FPGA-based query accelerator is developed, which dynamically reconfigures specialized programmable hardware filters within a field-programmable gate array (FPGA) to accelerate data queries by splitting queries into sub-queries, mapping them to filter properties, and configuring filters using reconfiguration bitstreams, thereby enhancing query processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional CPU-based systems are used to process large data queries on columnar databases, then the system architecture is simple and easy to implement, but the query processing speed and efficiency are insufficient

Engineering Contradiction:
Improvequery processing speedVSAvoidsystem architecture complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent divides the query processing system into two distinct parts: a static CPU region for control and coordination, and a dynamic FPGA region for parallel query execution. This segmentation allows the system to leverage both the simplicity of CPU architecture and the high-speed parallel processing capabilities of FPGA, resolving the contradiction between speed and complexity by distributing functions across heterogeneous components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs dynamic reconfiguration of FPGA hardware filters based on query characteristics. The system can dynamically allocate and reconfigure filtering resources in the FPGA region according to the specific query requirements, enabling the architecture to adapt its complexity level to match the processing demands, thus achieving high speed without permanently increasing system complexity.

Inventive Principle:
Principle #15Dynamics

2Productivity

If dynamic FPGA reconfiguration is implemented to accelerate queries, then query processing efficiency is improved, but the device complexity and reconfiguration overhead increase

Engineering Contradiction:
Improvequery processing efficiencyVSAvoidreconfiguration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent pre-organizes the FPGA into multiple reconfigurable regions with predefined filter templates and resource allocations. Before query execution, the system prepares configuration bitstreams and maps query requirements to appropriate pre-defined regions, reducing the actual reconfiguration time and complexity during runtime. This preliminary preparation resolves the contradiction by shifting complexity management to the setup phase rather than execution phase.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent designs universal filter templates and reconfigurable regions that can handle multiple query types and data patterns. By creating multi-functional hardware blocks that can be configured for different filtering operations, the system reduces the number of specialized components needed, thereby managing device complexity while maintaining high processing efficiency across diverse query workloads.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Speed

If specialized hardware filters are configured in FPGA regions, then query execution speed is accelerated, but the initial setup and configuration time increase

Engineering Contradiction:
Improvequery execution speedVSAvoidconfiguration time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent pre-generates configuration bitstreams for common query patterns and stores them for rapid loading. The system maintains a library of pre-configured filter templates that can be quickly instantiated without full reconfiguration, significantly reducing the time penalty associated with hardware setup while maintaining accelerated execution speeds for standard query types.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements fine-grained reconfiguration at the region level rather than requiring full FPGA reconfiguration. Individual reconfigurable regions can be independently configured and activated based on query needs, allowing the system to minimize configuration overhead by only reconfiguring the specific portions of hardware needed for the current query while leaving other regions operational.

Inventive Principle:
Principle #3Local quality

4Adaptability or versatility

If the FPGA is split into static and reconfigurable regions, then runtime flexibility is improved, but the device complexity and interface management overhead increase

Engineering Contradiction:
Improveruntime flexibilityVSAvoidregion interface complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a region interface layer with standardized partition pins and control registers that mediate between the static CPU region and dynamic FPGA regions. This intermediary interface provides a uniform method for configuration and control, simplifying the management of multiple reconfigurable regions while maintaining runtime flexibility. The standardized interface resolves the contradiction by abstracting the complexity of region management from the query processing logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11836171B2Demand based dynamic creation of data analytics query accelerators
Publication Date: 2023.12.05 GOOGLE LLC
  • US11836171B2 patent drawing
  • US11836171B2 patent drawing
  • US11836171B2 patent drawing

AI summary

A system and method for processing queries including splitting a query into sub-queries, mapping the sub-queries to respective sets of filter properties, mapping the sets of filter properties to respective reconfiguration bitstreams, configuring a plurality of filters within a field programmable gate array (FPGA) according to respective ones of the respective reconfiguration bitstreams, wherein each filter is formed in a respective reconfigurable region of the FPGA.