IP Library › Granted Patent US 8,966,213
Granted Patent B2
US 8,966,213 · App. 13/548,161 · Granted Feb 24, 2015

Granting and revoking supplemental memory allocation requests

Inventors: Derek Logan Erdmann (Tucson, AZ); David C. Reed (Tucson, AZ); Thomas C. Reed (Tucson, AZ); Max D. Smith (Tucson, AZ)
Assignee: International Business Machines Corporation
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 8,966,213
App. No.
13/548,161
Granted
Feb 24, 2015
Kind
B2
Abstract

Provided are a computer program product, system, and method for granting and revoking supplemental memory allocation requests. Supplemental memory allocations of memory resources are granted to applications following initial memory allocations of the memory resources to the applications. In response to determining that available memory resources have fallen below an availability threshold, determining a weighting factor for each supplemental memory allocation based on at least one of an amount of the memory resources allocated to the supplemental memory allocation and a measured duration during which the memory resources have been allocated. At least one of the supplemental memory allocations is selected to revoke based on the determined weighting factors of the supplemental memory allocations.

Claims (116)

1. A computer program product for allocating memory resources in a memory system to applications, the computer program product comprising a computer readable storage medium having computer readable program code embodied therein that executes to perform operations, the operations comprising:

granting supplemental memory allocations of the memory resources to applications following initial memory allocations of the memory resources to the applications;

determining that available memory resources have fallen below an availability threshold;

in response to determining that the available memory resources have fallen below the availability threshold, determining a weighting factor for each supplemental memory allocation based on at least one of an amount of the memory resources allocated to the supplemental memory allocation and a measured duration during which the memory resources have been allocated; and

selecting at least one of the supplemental memory allocations to revoke based on the determined weighting factors of the supplemental memory allocations.

2. The computer program product of claim 1 , wherein the weighting factor is based on both the amount of the memory resources allocated and the measured duration of the supplemental memory allocation, wherein supplemental memory allocations having a relatively higher amount of memory resources allocated and measured duration tend to be selected to revoke.

3. The computer program product of claim 1 , wherein determining the weighting factor for each supplemental memory allocation comprises:

determining an assigned duration during which the supplemental memory allocation was granted to the application; and

calculating a delinquency amount comprising an extent to which the measured duration of the supplemental memory allocation exceeds the assigned duration, wherein the weighting factor is additionally based on the delinquency amount.

4. The computer program product of claim 3 , wherein the determining the delinquency amount comprises:

determining whether the calculated delinquency amount exceeds a maximum delinquency amount;

setting the delinquency amount to the calculated delinquency amount in response to determining that the delinquency amount does not exceed the maximum delinquency amount;

setting the delinquency amount to the maximum delinquency amount in response to determining that the determined delinquency amount exceeds the maximum delinquency amount; and

setting the delinquency amount to the maximum delinquency amount in response to determining that a supplemental memory request for the supplemental memory allocation did not include a requested duration.

5. The computer program product of claim 4 , wherein the calculated delinquency amount comprises a difference of the measured duration and the assigned duration as a percentage of the assigned duration, wherein the weighting factor is calculated by multiplying the amount of the memory allocation, the delinquency amount, and the measured duration, wherein the selected supplemental memory allocation to revoke comprises the supplemental memory allocation having a highest weighting factor.

6. The computer program product of claim 1 , wherein the operations further comprise:

receiving a supplemental memory request from a requesting application for a supplemental memory allocation following the initial memory allocation to the application;

determining whether there are sufficient memory resources available for the supplemental memory request; and

in response to determining that there are sufficient memory resources available, performing:

determining an assigned duration for the supplemental memory allocation; and

granting the supplemental memory request for the assigned duration.

7. The computer program product of claim 6 , wherein the operations further comprise:

maintaining supplemental historical information indicating previous supplemental memory allocations of the memory resources,

wherein the determining of whether there are sufficient memory resources available for the supplemental memory request comprises:

determining available memory resources;

determining expected memory usage for expected supplemental memory allocations for the assigned duration according to the supplemental historical information; and

determining that the available memory resources are sufficient in response to determining that the available memory resources are sufficient for the expected memory usage and the supplemental memory request for the assigned duration.

8. The computer program product of claim 6 , wherein granting the supplemental memory request comprises:

maintaining supplemental historical information indicating previous supplemental memory allocations of the memory resources;

determining in the historical information previous supplemental memory allocations to the requesting application; and

using the determined previous supplemental memory allocations to determine the assigned duration.

9. The computer program product of claim 8 , wherein the using of the determined previous supplemental memory allocations comprises:

determining whether the supplemental memory request includes a requested duration;

setting the assigned duration to a historical duration based on the determined previous supplemental memory allocations in response to determining that the supplemental memory request does not include the requested duration; and

in response to determining that the supplemental memory request includes the requested duration, performing:

setting the determined duration to the requested duration in response to determining that the requested duration does not exceed the historical duration by a predetermined margin; and

setting the determined duration to the historical duration in response to determining that the requested duration exceeds the historical duration by the predetermined margin.

10. The computer program product of claim 8 , wherein granting the supplemental memory request comprises:

determining whether the supplemental memory request includes a requested duration;

setting the assigned duration to the requested duration in response to determining that supplemental memory requests includes the requested duration and that there is insufficient historical information of previous supplemental memory allocations for the requesting application; and

setting the assigned duration to a predetermined default duration in response to determining that supplemental memory requests does not include the requested duration and that there is insufficient historical information of previous supplemental memory allocations for the requesting application.

11. The computer program product of claim 1 , wherein the supplemental memory allocations are granted to the applications for assigned durations, wherein the operations further comprise:

determining a delinquent application comprising one of the applications that continues to use the memory resources of the supplemental memory allocation following an expiration of the assigned duration; and

sending a notification to the delinquent application that the supplemental memory allocation granted to the delinquent application exceeds the assigned duration and that the supplemental memory allocation is subject to being revoked.

12. A system for allocating memory resources to applications, comprising:

at least one memory device having memory resources;

a computer readable storage medium implementing a memory manager executed to perform operations, the operations comprising:

granting supplemental memory allocations of the memory resources to applications following initial memory allocations of the memory resources to the applications;

determining that available memory resources have fallen below an availability threshold;

in response to determining that the available memory resources have fallen below the availability threshold, determining a weighting factor for each supplemental memory allocation based on at least one of an amount of the memory resources allocated to the supplemental memory allocation and a measured duration during which the memory resources have been allocated; and

selecting at least one of the supplemental memory allocations to revoke based on the determined weighting factors of the supplemental memory allocations.

13. The system of claim 12 , wherein determining the weighting factor for each supplemental memory allocation comprises:

determining an assigned duration during which the supplemental memory allocation was granted to the application; and

calculating a delinquency amount comprising an extent to which the measured duration of the supplemental memory allocation exceeds the assigned duration, wherein the weighting factor is additionally based on the delinquency amount.

14. The system of claim 13 , wherein the determining the delinquency amount comprises:

determining whether the calculated delinquency amount exceeds a maximum delinquency amount;

setting the delinquency amount to the calculated delinquency amount in response to determining that the delinquency amount does not exceed the maximum delinquency amount;

setting the delinquency amount to the maximum delinquency amount in response to determining that the determined delinquency amount exceeds the maximum delinquency amount; and

setting the delinquency amount to the maximum delinquency amount in response to determining that a supplemental memory request for the supplemental memory allocation did not include a requested duration.

15. The system of claim 12 , wherein the operations further comprise:

receiving a supplemental memory request from a requesting application for a supplemental memory allocation following the initial memory allocation to the application;

determining whether there are sufficient memory resources available for the supplemental memory request; and

in response to determining that there are sufficient memory resources available, performing:

determining an assigned duration for the supplemental memory allocation; and

granting the supplemental memory request for the assigned duration.

16. The system of claim 15 , wherein the operations further comprise:

maintaining supplemental historical information indicating previous supplemental memory allocations of the memory resources,

wherein the determining of whether there are sufficient memory resources available for the supplemental memory request comprises:

determining available memory resources;

determining expected memory usage for expected supplemental memory allocations for the assigned duration according to the supplemental historical information; and

determining that the available memory resources are sufficient in response to determining that the available memory resources are sufficient for the expected memory usage and the supplemental memory request for the assigned duration.

17. The system of claim 15 , wherein granting the supplemental memory request comprises:

maintaining supplemental historical information indicating previous supplemental memory allocations of the memory resources;

determining in the historical information previous supplemental memory allocations to the requesting application; and

using the determined previous supplemental memory allocations to determine the assigned duration.

18. The system of claim 17 , wherein the using of the determined previous supplemental memory allocations comprises:

determining whether the supplemental memory request includes a requested duration;

setting the assigned duration to a historical duration based on the determined previous supplemental memory allocations in response to determining that the supplemental memory request does not include the requested duration; and

in response to determining that the supplemental memory request includes the requested duration, performing:

setting the determined duration to the requested duration in response to determining that the requested duration does not exceed the historical duration by a predetermined margin; and

setting the determined duration to the historical duration in response to determining that the requested duration exceeds the historical duration by the predetermined margin.

19. A method, comprising:

granting supplemental memory allocations of memory resources in at least one memory device to applications following initial memory allocations of the memory resources to the applications;

determining that available memory resources have fallen below an availability threshold;

in response to determining that the available memory resources have fallen below the availability threshold, determining a weighting factor for each supplemental memory allocation based on at least one of an amount of the memory resources allocated to the supplemental memory allocation and a measured duration during which the memory resources have been allocated; and

selecting at least one of the supplemental memory allocations to revoke based on the determined weighting factors of the supplemental memory allocations.

20. The method of claim 19 , wherein determining the weighting factor for each supplemental memory allocation comprises:

determining an assigned duration during which the supplemental memory allocation was granted to the application; and

calculating a delinquency amount comprising an extent to which the measured duration of the supplemental memory allocation exceeds the assigned duration, wherein the weighting factor is additionally based on the delinquency amount.

21. The method of claim 20 , wherein the determining the delinquency amount comprises:

determining whether the calculated delinquency amount exceeds a maximum delinquency amount;

setting the delinquency amount to the calculated delinquency amount in response to determining that the delinquency amount does not exceed the maximum delinquency amount;

setting the delinquency amount to the maximum delinquency amount in response to determining that the determined delinquency amount exceeds the maximum delinquency amount; and

setting the delinquency amount to the maximum delinquency amount in response to determining that a supplemental memory request for the supplemental memory allocation did not include a requested duration.

22. The method of claim 19 , further comprising:

receiving a supplemental memory request from a requesting application for a supplemental memory allocation following the initial memory allocation to the application;

determining whether there are sufficient memory resources available for the supplemental memory request; and

in response to determining that there are sufficient memory resources available, performing:

determining an assigned duration for the supplemental memory allocation; and

granting the supplemental memory request for the assigned duration.

23. The method of claim 22 , further comprising:

maintaining supplemental historical information indicating previous supplemental memory allocations of the memory resources,

wherein the determining of whether there are sufficient memory resources available for the supplemental memory request comprises:

determining available memory resources;

determining expected memory usage for expected supplemental memory allocations for the assigned duration according to the supplemental historical information; and

determining that the available memory resources are sufficient in response to determining that the available memory resources are sufficient for the expected memory usage and the supplemental memory request for the assigned duration.

24. The method of claim 22 , wherein granting the supplemental memory request comprises:

maintaining supplemental historical information indicating previous supplemental memory allocations of the memory resources;

determining in the historical information previous supplemental memory allocations to the requesting application; and

using the determined previous supplemental memory allocations to determine the assigned duration.

25. The method of claim 24 , wherein the using of the determined previous supplemental memory allocations comprises:

determining whether the supplemental memory request includes a requested duration; and

setting the assigned duration to a historical duration based on the determined previous supplemental memory allocations in response to determining that the supplemental memory request does not include the requested duration;

in response to determining that the supplemental memory request includes the requested duration, performing:

setting the determined duration to the requested duration in response to determining that the requested duration does not exceed the historical duration by a predetermined margin; and

setting the determined duration to the historical duration in response to determining that the requested duration exceeds the historical duration by the predetermined margin.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2012
From: ERDMANN, DEREK LOGAN; REED, DAVID C.; REED, THOMAS C.; SMITH, MAX D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028547/0634 →
Continuity (1)
Related Publication 20140019708A1 · Jan 16, 2014