Query Governor for Database Resource Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database management systems (DBMS) lack the ability to effectively manage the execution of groups of queries, as they are designed to handle individual queries rather than groups, leading to potential resource exhaustion and performance issues.

Innovation Solution

Implementing a query governor that groups queries based on attributes such as type, user, application, and job, and estimates the resource requirements for these groups, allowing for scheduling decisions to prevent excessive resource usage, such as delaying or halting queries if expected resource usage exceeds thresholds.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the DBMS executes individual queries without group management, then each query can be processed independently, but resource exhaustion and performance issues occur when handling groups of queries

Engineering Contradiction:
Improvequery processing efficiencyVSAvoidresource management stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent combines multiple individual queries into a grouped query structure, where the DBMS treats the group as a single executable unit. This merging allows the system to manage resource allocation at the group level rather than individual query level, preventing resource exhaustion while maintaining processing efficiency. The group header contains execution control information that applies to all queries in the group, enabling coordinated resource management.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If the DBMS manages execution of groups of queries, then resource usage can be optimized and performance improved, but the system complexity increases

Engineering Contradiction:
Improvesystem resource efficiencyVSAvoidquery management system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the query management process into distinct components: a group header containing execution control information and a group body containing multiple individual queries. This segmentation allows the complex task of group query management to be divided into manageable parts, where the header handles resource allocation and execution control, while the body contains the actual queries to be executed. This structural division reduces overall system complexity by organizing functionality into separate, well-defined segments.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If queries are executed without grouping, then implementation is simpler, but resource exhaustion can occur leading to system failures

Engineering Contradiction:
Improvequery execution implementation complexityVSAvoidresource exhaustion impact
Core Design Contradiction:
Device complexityVSObject-affected harmful factors

Solution Approach 1:

The patent implements preliminary action by evaluating and allocating resources for a group of queries before actual execution begins. The group header contains pre-calculated execution control information that determines resource requirements and execution parameters for all queries in the group. This preliminary resource allocation prevents resource exhaustion during execution, as the system has already determined whether sufficient resources are available before committing to execute the query group, thereby avoiding system failures.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10049133B2Query governor across queries
Publication Date: 2018.08.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10049133B2 patent drawing
  • US10049133B2 patent drawing
  • US10049133B2 patent drawing

AI summary

Techniques are described for managing the execution of one or more groups of queries. Embodiments of the present disclosure may generally receive a group of queries to be executed against a database. Embodiments also determine, based on one or more attributes of the group of queries, an expected amount of resources that will be used in executing the group of queries against the database. Embodiments further schedule one or more queries of the group of queries for execution against the database based on the expected amount of resources to be used for the group of queries.