Priority Gradient Multiprogramming Database Query Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for managing Multi-Programming Level (MPL) in database systems, such as feed-forward, feed-back, and static approaches, face challenges in accurately estimating memory requirements and reacting to rapidly changing workloads, leading to potential thrashing and performance deterioration, especially in Business Intelligence workloads with fluctuating query mixes.

Innovation Solution

The implementation of Priority Gradient Multiprogramming (PGM) which schedules queries on a database system using a priority gradient, restricting the number of queries to consume less than total system memory and dynamically adjusting priorities to prevent overload while maintaining high throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the MPL is increased to achieve higher throughput, then the number of queries processed per unit time increases, but the system may become overloaded and experience severe memory contention and CPU thrashing

Engineering Contradiction:
ImprovethroughputVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements dynamic MPL adjustment by continuously monitoring system metrics (CPU utilization, memory usage, I/O activity) and adapting the multiprogramming level in real-time. This allows the system to transition between under-loaded and optimal regions, preventing overload and thrashing while maintaining high throughput. The dynamic nature enables the system to respond to changing workload conditions rather than operating at a fixed MPL.

Inventive Principle:
Principle #15Dynamics

2Speed

If the sampling interval is made small to quickly detect workload changes, then the system can react faster to prevent overload, but the system may oscillate and become unstable

Engineering Contradiction:
Improveresponse speedVSAvoidsystem stability
Core Design Contradiction:
SpeedVSStability of the object's composition

Solution Approach 1:

The patent implements a feedback control mechanism that samples system metrics at controlled intervals and adjusts the MPL accordingly. The feedback loop monitors CPU utilization, memory usage, and I/O activity, then modulates the admission of new queries to maintain optimal system performance. This feedback approach allows the system to respond to workload changes while maintaining stability through controlled adjustment rates.

Inventive Principle:
Principle #23Feedback

3Reliability

If memory allocation is restricted to prevent thrashing, then the system avoids overload, but the optimal MPL cannot be determined without accurate memory requirement estimates which are difficult to obtain for complex BI queries

Engineering Contradiction:
Improveoverload preventionVSAvoidmemory estimation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent enables queries to self-regulate their memory usage through dynamic memory management techniques. Rather than requiring external estimation of memory requirements, the system allows queries to allocate and release memory dynamically based on actual needs and system availability. This self-service approach eliminates the need for complex upfront memory estimation while preventing thrashing through adaptive resource management.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9043353B2Query stream execution using priority gradient multiprogramming
Publication Date: 2015.05.26 HEWLETT PACKARD ENTERPRISE DEV LP
  • US9043353B2 patent drawing
  • US9043353B2 patent drawing
  • US9043353B2 patent drawing

AI summary

A workload management system and operating method are configured for query stream execution using priority gradient programming. The workload management system comprises a database system that executes queries at a priority gradient wherein no more than a predetermined number of queries execute at a particular priority, and a scheduler that schedules queries for execution on the database system and restricts the queries to a number that consumes less than total system memory.