IP Library Granted Patent US 12,405,747
Granted Patent B2
US 12,405,747 · App. 18/171,104 · Granted Sep 2, 2025

Dynamic page fix optimization for database objects

Inventor: Donnell W. Roach (Houston, TX)
Assignee: BMC Software, Inc.
G06F3/0656G06F3/0613G06F3/0683G06F12/08G06F2212/254
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 12,405,747
App. No.
18/171,104
Granted
Sep 2, 2025
Kind
B2
Abstract

A main memory of at least one computing device may be monitored to determine available main memory for a fixed buffer pool storing a first set of data objects accessible by an application. A virtual buffer pool stored in a secondary memory of the at least one computing device and storing a second set of data objects accessible by the application may be monitored. Object performance profiles that include an object performance profile for each data object of the second set of data objects may be generated. A transfer trigger for selecting a candidate transfer object from the second set of data objects for transfer to the main memory may be determined, based on the object performance profiles. The candidate transfer object may be transferred from the secondary memory to the fixed buffer pool to be included in the first set of data objects, in response to the transfer trigger.

Claims (61)

1. A computer program product, the computer program product being tangibly embodied on a non-transitory computer-readable storage medium and comprising instructions that, when executed by at least one computing device, are configured to cause the at least one computing device to:

monitor a main memory of the at least one computing device to determine available main memory for a fixed buffer pool storing a first set of data objects accessible by an application;

monitor a virtual buffer pool stored in a secondary memory of the at least one computing device and storing a second set of data objects accessible by the application;

generate object performance profiles that include an object performance profile for each data object of the second set of data objects;

determine a transfer trigger for selecting a candidate transfer object from the second set of data objects for transfer to the main memory, based on the object performance profiles; and

transfer the candidate transfer object from the secondary memory to the fixed buffer pool to be included in the first set of data objects, in response to the transfer trigger.

2. The computer program product of claim 1 , wherein the instructions are further configured to cause the at least one computing device to:

generate the object performance profiles including an input/output (I/O) intensity of each data object with respect to the application.

3. The computer program product of claim 1 , wherein the instructions are further configured to cause the at least one computing device to:

determine the transfer trigger based on a number of processor cycles of the at least one computing device saved by executing the transfer.

4. The computer program product of claim 1 , wherein the instructions are further configured to cause the at least one computing device to:

generate a virtual buffer pool performance profile for the virtual buffer pool that includes a characterization of access activity of the virtual buffer pool with respect to the application.

5. The computer program product of claim 1 , wherein the instructions are further configured to cause the at least one computing device to:

execute the transfer by replicating the virtual buffer pool in the main memory to provide the fixed buffer pool; and

transfer the candidate transfer object into the fixed buffer pool to be included in the first set of data objects.

6. The computer program product of claim 1 , wherein the instructions are further configured to cause the at least one computing device to:

execute the transfer by transferring the candidate transfer object into the fixed buffer pool to be included in the first set of data objects.

7. The computer program product of claim 1 , wherein the instructions are further configured to cause the at least one computing device to:

monitor the main memory, following the transfer; and

execute a second transfer of the candidate transfer object, from the fixed buffer pool to the virtual buffer pool.

8. The computer program product of claim 1 , wherein the instructions are further configured to cause the at least one computing device to:

monitor the main memory, following the transfer; and

execute a second transfer of the candidate transfer object, from the fixed buffer pool to a second virtual buffer pool in the secondary memory, based on a correspondence of the object performance profile of the candidate transfer object and a virtual buffer pool performance profile of the second virtual buffer pool.

9. The computer program product of claim 1 , wherein the instructions are further configured to cause the at least one computing device to:

execute the transfer including generating at least one directive to implement the transfer; and

execute the at least one directive.

10. The computer program product of claim 1 , wherein the first set of data objects and the second set of data objects include at least one of a database table, an index, a tablespace, or an index space.

11. A computer-implemented method, the method comprising:

monitoring a main memory of at least one computing device to determine available main memory for a fixed buffer pool storing a first set of data objects accessible by an application;

monitoring a virtual buffer pool stored in a secondary memory of the at least one computing device and storing a second set of data objects accessible by the application;

generating object performance profiles that include an object performance profile for each data object of the second set of data objects;

determining a transfer trigger for selecting a candidate transfer object from the second set of data objects for transfer to the main memory, based on the object performance profiles; and

transferring the candidate transfer object from the secondary memory to the fixed buffer pool to be included in the first set of data objects, in response to the transfer trigger.

12. The method of claim 11 , comprising:

generating the object performance profiles including an input/output (I/O) intensity of each data object with respect to the application.

13. The method of claim 11 , comprising:

determining the transfer trigger based on a number of processor cycles of the at least one computing device saved by executing the transfer.

14. The method of claim 11 , comprising:

executing the transfer by replicating the virtual buffer pool in the main memory to obtain provide the fixed buffer pool; and

transferring the candidate transfer object into the fixed buffer pool as one of the first set of data objects.

15. The method of claim 11 , comprising:

executing the transfer by transferring the candidate transfer object into the fixed buffer pool to be included in the first set of data objects.

16. The method of claim 11 , comprising:

monitoring the main memory, following the transfer; and

executing a second transfer of the candidate transfer object, from the fixed buffer pool to the virtual buffer pool.

17. The method of claim 11 , comprising:

monitoring the main memory, following the transfer; and

executing a second transfer of the candidate transfer object, from the fixed buffer pool to a second virtual buffer pool in the secondary memory, based on a correspondence of the object performance profile of the candidate transfer object and a virtual buffer pool performance profile of the second virtual buffer pool.

18. A system comprising:

at least one memory including instructions; and

at least one processor that is operably coupled to the at least one memory and that is arranged and configured to execute instructions that, when executed, cause the at least one processor to

monitor a main memory of the system to determine available main memory for a fixed buffer pool storing a first set of data objects accessible by an application;

monitor a virtual buffer pool stored in a secondary memory of the system and storing a second set of data objects accessible by the application;

generate object performance profiles that include an object performance profile for each data object of the second set of data objects;

determine a transfer trigger for selecting a candidate transfer object from the second set of data objects for transfer to the main memory, based on the object performance profiles; and

transfer the candidate transfer object from the secondary memory to the fixed buffer pool to be included in the first set of data objects, in response to the transfer trigger.

19. The system of claim 18 , wherein the instructions are further configured to cause the at least one processor to:

execute the transfer by replicating the virtual buffer pool in the main memory to provide the fixed buffer pool; and

transfer the candidate transfer object into the fixed buffer pool to be included in the first set of data objects.

20. The system of claim 18 , wherein the instructions are further configured to cause the at least one processor to:

execute the transfer by transferring the candidate transfer object into the fixed buffer pool to be included in the first set of data objects.

Assignments (3)
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2023
From: ROACH, DONNELL W.
To: BMC SOFTWARE, INC.
Reel/Frame 062819/0195 →