IP Library Granted Patent US 9,165,032
Granted Patent B2
US 9,165,032 · App. 11/986,599 · Granted Oct 20, 2015

Allocation of resources for concurrent query execution via adaptive segmentation

Inventors: Robert M Wehrmeister (Austin, TX); Awny K Al-Omari (Cedar Park, TX); Subbarao Kakarlamudi (Milpitas, CA); Zbigniew Omanski (San Jose, CA); Kashif A Siddiqui (Austin, TX); Hansjorg Zeller (Los Altos, CA); Peter Friedenbach (Santa Clara, CA)
Assignee: Hewlett-Packard Development Company, L.P.
G06F17/30445G06F17/30545
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,165,032
App. No.
11/986,599
Granted
Oct 20, 2015
Kind
B2
Abstract

An enterprise data warehouse or business intelligence system having a plurality of processors and memory resources. The system includes at least a database server, a workload management system, a query compiler, and a query executor. The database server configured to receive a database query from an application at a database client system. The query compiler configured to prepare the execution plan for the query and compute the number of executive server processes (ESPs) in each ESP layer of the query. The workload management system is configured to generate an affinity value, and the query executor is configured to execute the query. As disclosed herein, placement of the executive server process layers of the query onto processors of the computing system is determined using the affinity value. Other embodiments, aspects and features are also disclosed.

Claims (44)

1. An automated method to allocate resources of a highly parallel computing system for processing a database query, the method comprising:

receiving the database query from an application at a client system;

compiling the query and computing the number of executive server processes (ESPs) in each ESP layer of the query;

generating an affinity value, wherein the affinity value specifies a subset of processors for a range of processor subset sizes;

executing the query wherein placement of ESP layers of the query onto processors of the computing system is determined using the affinity value; and

returning results of the execution to the application.

2. The method of claim 1 , further comprising computing a maximum degree of parallelism for the query.

3. The method of claim 2 , wherein said computing of the maximum degree of parallelism includes computing an estimated memory resource required by the query and an estimated CPU resource required by the query.

4. The method of claim 1 , wherein an interleaved ordering of processors is used in forming CPU subsets.

5. The method of claim 1 , wherein the subset of processors specified by the affinity value is given by a variable multiplied by a skip value plus an offset value, where the variable goes from zero to the number of executive server processes in an ESP layer minus one.

6. The method of claim 1 , wherein cyclical placement is used when placing ESP layers onto CPU subsets.

7. The method of claim 1 , wherein the affinity value is based on a current S run-time state of the system.

8. The method of claim 1 , wherein the affinity value is randomly generated.

9. The method of claim 1 , wherein the affinity value is based on a source of the query.

10. A highly parallel computing apparatus for an enterprise data warehouse system or a business intelligence system, the apparatus comprising:

a plurality of processors in the highly parallel computing apparatus;

memory resources in the highly parallel computing apparatus;

a database server configured to receive a database query from an application at a database client system;

a query compiler configured to prepare an execution plan for the query and compute a number of executive server processes (ESPs) in each ESP layer of the query;

a workload management system configured to generate an affinity value based on the current run-time state of the apparatus, wherein the affinity value specifies a subset of processors for a range of processor subset sizes; and

a query executor configured to execute the query wherein placement of ESP layers of the query onto processors of the computing system is determined using the affinity value.

11. The apparatus of claim 10 , further comprising a query optimizer module configured to compute a maximum degree of parallelism for the query.

12. The apparatus of claim 11 , wherein said computing of the maximum degree of parallelism includes computing an estimated memory resource required by the query and an estimated processor resource required by the query.

13. The apparatus of claim 10 , wherein an interleaved ordering of processors is used in forming processor subsets.

14. The apparatus of claim 10 , wherein the subset of processors specified by the affinity value is given by a variable multiplied by a skip value plus an offset value, where the variable goes from zero to the number of executive server processes in an ESP layer minus one.

15. The apparatus of claim 10 , wherein cyclical placement is used when placing ESP layers onto CPU subsets.

16. The apparatus of claim 10 , wherein the affinity value is based on a current run-time state of the apparatus.

17. The apparatus of claim 10 , wherein the affinity value is randomly generated.

18. The apparatus of claim 10 , wherein the affinity value is based on a source of the query.

19. An enterprise warehouse or business intelligence system comprising:

a plurality of processors configured to execute computer-readable instructions;

memory configured to store computer-readable instructions and data;

processor-executable code for a database server which is configured to receive a database query from an application at a database client system;

processor-executable code for a workload management system configured to generate an affinity value, wherein the affinity value specifies a subset of processors for a range of processor subset sizes;

processor-executable code for a query compiler configured to prepare an execution plan for the query and compute a number of executive server processes (ESPs) in each ESP layer of the query; and

processor-executable code for a query executor configured to execute the query wherein placement of ESP layers of the query onto processors of the computing system is determined using the affinity value.

20. The method of claim 1 , comprising:

computing an estimated memory resource (EMR) required by the query, and an estimated CPU resource (ECR) required by the query;

computing a first ratio of the EMR to an amount of memory available per CPU, and a second ratio of the ECR to an amount of work acceptable to be assigned per CPU; and

computing a maximum degree of parallelism for the query as a function of greater of the first ratio and the second ratio.

21. The apparatus of claim 11 , wherein computing the maximum degree of parallelism comprises:

computing an estimated memory resource (EMR) required by the query, and computing an estimated CPU resource (ECR) required by the query;

computing a first ratio of the EMR to a first constant representing an amount of memory available per CPU, and computing a second ratio of the ECR to a second constant representing an amount of work acceptable to be assigned per CPU; and

selecting a maximum value of the first ratio versus the second ratio.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2008
From: WEHRMEISTER, ROBERT M; AL-OMARI, AWNY K; KAKARLAMUDI, SUBBARAO; OMANSKI, ZBIGNIEW; SIDDIQUI, KASHIF A; ZELLER, HANSJORG; FRIEDENBACH, PETER
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 020407/0007 →
Continuity (1)
Related Publication 20090132488A1 · May 21, 2009