IP Library › Granted Patent US 9,195,506
Granted Patent B2
US 9,195,506 · App. 13/723,575 · Granted Nov 24, 2015

Processor provisioning by a middleware processing system for a plurality of logical processor partitions

Inventors: Paul M. Bird (Markham, CA); David Kalmuk (Totonto, CA)
Assignee: International Business Machines Corporation
G06F9/5016G06F9/4881G06F9/5077G06F9/546G06F12/0842G06F2209/485G06F2209/504G06F2209/5012
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,195,506
App. No.
13/723,575
Granted
Nov 24, 2015
Kind
B2
Abstract

A middleware processor provisioning process provisions a plurality of processors in a multi-processor environment. The processing capability of the multiprocessor environment is subdivided and multiple instances of service applications start protected processes to service a plurality of user processing requests, where the number of protected processes may exceed the number of processors. A single processing queue is created for each processor. User processing requests are portioned and dispatched across the plurality of processing queues and are serviced by protected processes from corresponding service applications, thereby efficiently using available processing resources while servicing the user processing requests in a desired manner.

Claims (37)

1. A multiprocessor system for efficiently allocating workload in middleware for a plurality of user processing requests among a plurality of processors comprising:

a computer system including the plurality of processors configured to:

assess a current processing workload for the plurality of user processing requests;

subdivide a processing capability of the multiprocessor system into a plurality of processing units based on the current processing workload;

execute a plurality of protected processes started by one or more service applications on the plurality of processing units to service the user processing requests such that the number of protected processes is allowed to exceed the number of processing units;

allocate a portion of a shared memory space to each of the processing units;

generate a processing queue for each of the processing units, wherein each processing queue has access to a corresponding portion of the shared memory space;

assign a portion of each user processing request to one or more of the processing queues; and

service the portion of each user processing request by one or more of the plurality of protected processes as the portion of each user processing request is released for execution by a corresponding processing queue.

2. The multiprocessor system of claim 1 , wherein the plurality of processors are further configured to:

dedicate one or more of the plurality of protected processes started by one or more service applications to one of the processing units; and

dedicate one or more of the processing queues to a corresponding processing unit.

3. The multiprocessor system of claim 2 , wherein said assigning comprises assigning portions of the user processing requests to the affinitized processing unit via an affinitized processing queue.

4. The multiprocessor system of claim 1 , wherein said executing comprises determining by a first executing service application whether a shared memory set exists for allocation to each of the processing units, and when a shared memory set does not exist, allocating the shared memory set from available memory, and generating a first processing queue.

5. The multiprocessor system of claim 4 , wherein the plurality of processors are further configured to:

increment a service application instance counter; and

obtain a control token indicating the first executing service application is a master scheduler for performing said assigning of portions of each user processing request to one or more of the processing queues.

6. The multiprocessor system of claim 1 , wherein the plurality of processors are further configured to balance a processing workload associated with the user processing requests across two or more processing queues.

7. The multiprocessor system of claim 1 , wherein said assigning is based on one or more of user processing request priority and user processing request service class.

8. A computer program product for efficiently allocating workload in middleware for a plurality of user processing requests among a plurality of processors in a multiprocessor system comprising:

a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising computer readable program code configured to:

assess a current processing workload for the plurality of user processing requests;

subdivide a processing capability of the multiprocessor system into plurality of processing units based on the current processing workload;

execute a plurality of protected processes started by one or more service applications on the plurality of processing units to service the user processing requests such that the number of protected processes is allowed to exceed the number of processing units;

allocate a portion of a shared memory space to each of the processing units;

generate a processing queue for each of the processing units, wherein each processing queue has access to a corresponding portion of the shared memory space;

assign a portion of each user processing request to one or more of the processing queues; and

service the portion of each user processing request by one or more of the plurality of protected processes as the portion of each user processing request is released for execution by a corresponding processing queue.

9. The computer program product of claim 8 , further comprising computer readable program code configured to:

dedicate one or more of the plurality of service applications to one of the processing units; and

dedicate one or more of the processing queues to a corresponding processing unit.

10. The computer program product of claim 9 , wherein said assigning comprises assigning portions of the user processing requests to the affinitized processing unit via an affinitized processing queue.

11. The computer program product of claim 8 , wherein said executing comprises determining by a first executing service application whether a shared memory set exists for allocation to each of the processing units, and when a shared memory set does not exist, allocating the shared memory set from available memory, and generating a first processing queue.

12. The computer program product of claim 11 , further comprising computer readable program code configured to:

increment a service application instance counter; and

obtain a control token indicating the first executing service application is a master scheduler for performing said assigning of portions of each user processing request to one or more of the processing queues.

13. The computer program product of claim 8 , further comprising computer readable program code configured to balance a processing workload associated with the user processing requests across two or more processing queues.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2013
From: BIRD, PAUL M.; KALMUK, DAVID
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029560/0708 →
Continuity (1)
Related Publication 20140181833A1 · Jun 26, 2014