IP Library Granted Patent US 7,694,102
Granted Patent B2
US 7,694,102 · App. 11/278,130 · Granted Apr 6, 2010

Systems and methods for self-tuning memory

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 7,694,102
App. No.
11/278,130
Granted
Apr 6, 2010
Kind
B2
Abstract

There are disclosed systems, computer program products, and methods for self-tuning memory. In an embodiment, a method for self-tuning memory comprises setting a tuning interval and a target range for free memory for a memory pool. If memory consumption falls outside of the set target range for free memory during a tuning interval, a new target size for the memory pool is set based on the target range for free memory. Memory allocation for the memory pool is increased or decreased for the next tuning interval, such that the new target size for the memory pool is reached. A decrement rate may be used to provide a controlled decrease of the memory pool over a plurality of tuning intervals if necessary, until the new target size for the memory pool is reached.

Claims (41)

1. A data processing system implemented method of self-tuning memory, compnsing:

setting a tuning interval;

setting, for a memory pool, a target range for free memory;

setting a new target size for the memory pool, increasing memory allocation for the memory pool for a next tuning interval based on the new target size and maintaining free memory in the memory pool within the target range for free memory based on the new target size, if memory consumption increases above the set target range for free memory during a tuning interval;

setting a new target size for the memory pool, decreasing memory allocation for the memory pool for a next tuning interval using a decrement rate and maintaining free memory in the memory pool within the target range for free memory based on the new target size, if memory consumption decreases below the set target range for free memory during a tuning interval;

setting a maximum size for the memory pool; and

automatically providing an overflow memory to accommodate a temporary overflow beyond the set maximum size of the memory pool.

2. The data processing implemented method of claim 1 , further comprising repeating over a plurality of tuning intervals setting a new target size for the memory pool based on the target range for free memory and decreasing memory allocation for the memory pool for the next tuning interval using a decrement rate if memory consumption decreases below the set target range for free memory during a tuning interval, until the new target size for the memory pool is reached.

3. The data processing implemented method of claim 2 , further comprising selecting the decrement rate to be a percentage of the size of the memory pool.

4. The data processing implemented method of claim 3 , further comprising rounding the decrement rate percentage into a specified minimum block of memory, and decreasing the memory allocation for the memory pool in units of the specified minimum block of memory.

5. The data processing implemented method of claim 2 , further comprising setting the target range for free memory to be between 50% and 60%.

6. The data processing implemented method of claim 2 , wherein the setting a new target size for the memory pool is repeated at least once.

7. The data processing implemented method of claim 1 , further comprising setting the maximum size of the memory pool to be a percentage of available database memory.

8. The data processing implemented method of claim 1 , further comprising setting the maximum amount of memory consumable by a single transaction each time memory allocation is changed.

9. The data processing implemented method of claim 1 , wherein memory blocks are immediately allocated from the overflow memory during a single interval.

10. The data processing implemented method of claim 1 , wherein an amount by which memory allocation is changed is not fixed.

11. The data processing implemented method of claim 1 , wherein the memory pool includes memory in a database and the method includes:

subdividing the memory pool into subdivisions before setting the new target size for the memory pool; and

dynamically increasing or decreasing the memory allocation for the memory pool without deactivating the database, wherein the increasing or decreasing of the memory allocation is responsive to memory usage in respective subdivisions of the memory pool.

12. A data processing system for self tuning memory, comprising:

means for setting a tuning interval;

means for setting a target range for free memory for a memory pool;

means for determining if memory consumption increases above the set target range for free memory during a tuning interval, setting a new target size for the memory pool, increasing memory allocation for the memory pool for a next tuning interval based on the new target size and maintaining free memory in the memory pool within the target range for free memory based on the new target size;

means for determining if memory consumption decreases below the set target range for free memory during a tuning interval, setting a new target size for the memory pool, decreasing memory allocation for the memory pool for a next tuning interval using a decrement rate and maintaining free memory in the memory pool within the target range for free memory based on the new target size;

means for setting a maximum size for the memory pool; and

means for automatically providing an overflow memory to accommodate a temporary overflow beyond the set maximum size of the memory pool.

13. The data processing system of claim 12 , further comprising means for repeating the decrease in memory allocation for the memory pool over a plurality of tuning intervals if necessary, until the new target size for the memory pool is reached.

14. The data processing system of claim 13 , further comprising means for selecting the decrement rate to be a percentage of the size of the memory pool.

15. The data processing system of claim 14 , further comprising means for rounding the decrement rate percentage into a specified minimum block of memory, and decreasing the memory allocation for the memory pool in units of the specified minimum block of memory.

16. The data processing system of claim 13 , further comprising means for setting the target range for free memory to be between 50% and 60%.

17. The data processing system of claim 12 , further comprising means for setting the maximum size of the memory pool to be a percentage of available database memory.

18. A computer program product comprising a computer readable medium having stored therein code that, when loaded into a data processing device, adapts the device to self tune memory, wherein the code implements steps that include:

setting a tuning interval;

setting a target range for free memory for a memory pool;

determining if memory consumption increases above the set target range for free memory during a tuning interval, setting a new target size for the memory pool, increasing memory allocation for the memory pool for a next tuning interval based on the new target size and maintaining free memory in the memory pool within the target range for free memory based on the new target size;

determining if memory consumption decreases below the set target range for free memory during a tuning interval, setting a new target size for the memory pool, decreasing memory allocation for the memory pool for a next tuning interval using a decrement rate and maintaining free memory in the memory pool within the target range for free memory based on the new target size;

setting a maximum size for the memory pool; and

automatically providing an overflow memory to accommodate a temporary overflow beyond the set maximum size of the memory pool.

19. The computer program product of claim 18 , wherein the computer readable medium further includes code for repeating the decrease in memory allocation for the memory pool using the decrement rate over a plurality of tuning intervals if necessary, until the new target size for the memory pool is reached.

20. The computer program product of claim 19 , wherein the computer readable medium further includes code for selecting the decrement rate to be a percentage of the size of the memory pool.

21. The computer program product of claim 20 , wherein the computer readable medium further includes code for rounding the decrement rate percentage into a specified minimum block of memory, and decreasing the memory allocation for the memory pool in units of the specified minimum block of memory.

Assignments (9)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: TWITTER, INC.
Reel/Frame 032075/0404 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SEVENTH ASSIGNOR'S DOC DATE AND ASSIGNEE'S NAME PREVIOUSLY RECORDED ON REEL 017393 FRAME 0451. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 16, 2010
From: GARCIA-ARELLANO, CHRISTIAN MARCELO; LIGHTSTONE, SAM SAMPSON; STORM, ADAM J.; KUCZYNSKI, WOJCIECH; HURAS, MATTHEW ALBERT; XUE, XUN; CARROLL, MATTHEW JAMES
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024539/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2006
From: GARCIA-ARELLANO, CHRISTIAN MARCELO; LIGHTSTONE, SAM SAMPSON; STORM, ADAM J.; KUCZYNSKI, WOJCIECH; HURAS, MATTHEW ALBERT; XUE, XUN; CARROLL, MATTHEW JAMES
To: IBM CORPORATION
Reel/Frame 017393/0451 →