IP Library Granted Patent US 9,390,130
Granted Patent B2
US 9,390,130 · App. 12/316,412 · Granted Jul 12, 2016

Workload management in a parallel database system

Inventors: Subbarao Kakarlamudi (Milpitas, CA); Zbigniew Omanski (San Jose, CA); Patrick M. Brown (San Diego, CA); Tharaknath Capirala (Chennai, IN); Anan Mahasintunan (San Jose, CA); Arvind Narain (San Jose, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F17/30445G06F9/5083G06F17/30306
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,390,130
App. No.
12/316,412
Filed
Dec 12, 2008
Granted
Jul 12, 2016
Kind
B2
Art Unit
2183
USPC
718/105
Abstract

A workload management service component of a parallel database-management system monitors usage of computational resources in the parallel database-management system. The component provides a query-processing-task-management interface and a query-execution engine. The engine receives query-processing requests associated with one of a number of services from host computers, and accesses the workload-management-services component to determine whether to immediately launch execution of query-processing tasks corresponding to the received query-processing requests. Alternatively, the engine accesses the component to place the query-processing requests on wait queues for subsequent execution. The determination is based on the current usage of computational resources within the parallel database-management system.

Claims (49)

1. A parallel database-management system comprising:

two or more computer systems, each including multiple processors, shared memory, and one or more of internal mass-storage and attached mass-storage;

a workload-management-services component that monitors usage of shared computational resources in the parallel database-management system and that provides a query-processing-task-management interface; and

a query-execution engine that receives query-processing requests associated with one of a number of services from host computers and accesses the workload-management-services component to determine whether to immediately launch execution of query-processing tasks corresponding to the received query-processing requests or to place the query-processing requests on wait queues for subsequent execution based on the current usage of shared computational resources within the parallel database-management system.

2. The parallel database-management system of claim 1 wherein the shared computational resources include one or more of:

aggregate processor bandwidth;

individual processor bandwidths;

aggregate electronic memory storage capacity;

storage capacities of individual logical memory devices;

storage capacities of individual physical memory devices;

aggregate mass-storage capacity; and

capacities of individual mass-storage devices.

3. The parallel database-management system of claim 1 wherein the workload-management-services component periodically calls operating-system routines to determine what portion of each shared computational-resource capacity is currently used and maintains maximum-usage thresholds for each shared computational resource.

4. The parallel database-management system of claim 3 wherein the workload-management-services component additionally monitors the portion of each shared computational-resource capacity that is currently used by query-processing tasks associated with each of the number of services and maintains per-service capacity allocations for each shared computational resource.

5. The parallel database-management system of claim 1 wherein each received query-processing request includes an indication of estimated computational-resource capacities needed to execute the query-processing request.

6. The parallel database-management system of claim 5 wherein each service is represented by a service data structure that contains indications of the times at which the service is active, one or more priorities, maximum wait times, and control flags.

7. The parallel database-management system of claim 6 wherein query-execution engine, upon receiving a query-processing request from a remote host computer:

when any other query-processing tasks are queued to wait queues associated with a computational resource used to execute the received query-processing request,

queues the query-processing request to a wait queue;

accesses the workload-management-services component to determine whether to immediately launch execution of a query-processing task to execute the query-processing request;

when the workload-management-services component indicates execution of the query-processing request,

queues the query-processing request to a wait queue;

when the workload-management-services component indicates that execution should be deferred,

queues the query-processing request to a wait queue; and

when the workload-management-services component indicates that the received query-processing request should be rejected,

rejects the query-processing request by returning a rejection indication to the remote host computer.

8. The parallel database-management system of claim 7 wherein the workload-management-services component indicates that execution should be deferred when:

a computational resource used to execute the query-processing request has insufficient available additional capacity to execute the query-processing task that would be launched to execute the query-processing request.

9. The parallel database-management system of claim 7 wherein the workload-management-services component indicates that the received query-processing request should be rejected when:

the service with which the query-processing request is associated is not active; or

too many query-processing requests are pending and executing within the parallel database-management system.

10. The parallel database-management system of claim 7 wherein the query-execution engine additionally traverses wait queues, for each query-processing request queued to a wait queue

accessing the workload-management-services component to determine whether or not to dequeue the query-processing request from the wait queue; and

when the workload-management-services component indicates execution of the query-processing request,

queuing the query-processing request to an execution queue and launching a query-processing task on one or more processors to execute the query-processing request.

11. The parallel database-management system of claim 10 wherein the workload-management-services component indicates execution of the query-processing request when each computational resource used to execute the query-processing request has available capacity to execute the query-processing request and available per-service capacity to execute the query-processing request with respect to the service with which the query-processing request is associated.

12. The parallel database-management system of claim 10 wherein the query-execution engine launches the query-processing task by launching sub-tasks on each of a number of processors indicated by a degree-of-parallelism number associated with the query-processing request.

13. The parallel database-management system of claim 10 further including launching a first subtask on a processor indicated by an affinity value associated with the query-processing request and launching the remaining subtasks on processors with processor-numbers obtained by successive modulo addition of an interval number computed by adding the ratio of the number of processors in the parallel database-management system to the degree-of-parallelism number to a processor number on which a preceding subtask was launched.

14. A method for distributing workload within a parallel database-management system, the method comprising:

monitoring usage of shared computational resources in the parallel database-management system; and

for each received query-processing request associated with one of a number of services from remote host computers,

when the service with which the query-processing request is associated is currently not available,

rejecting the query-processing request;

when each shared computational resource used to execute the query-processing request has sufficient available capacity, and when no other query-processing request is waiting on the shared computational resource in a wait queue,

immediately launching execution of a query-processing task corresponding to the received query-processing request, and

otherwise queuing the query-processing request on a wait queue associated with a shared computational resource without sufficient available capacity to execute the request.

15. The method of claim 14 further including:

continuously monitoring wait queues to find queued query-processing requests for each of which the shared computational resources used to execute the query have sufficient available capacity and sufficient available per-service capacity to execute the query-processing request; and

launching execution of query-processing tasks corresponding to the found query-processing requests.

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 Mar 16, 2009
From: KAKARLAMUDI, SUBBARAO; OMANSKI, ZBIGNIEW; BROWN, PATRICK M.; THARAKNATH, CAPIRALA; MAHASINTUNAN, ANAN; NARAIN, ARVIND
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 022424/0691 →
Continuity (1)
Related Publication 20100153963A1 · Jun 17, 2010