Memory balancing and optimization services
First Claim
1. A system for balancing and optimizing memory allocation in a computer system that supports a plurality of memory consumers, comprising:
- a centralized control function adapted to serve memory reconfiguration requests from any one of;
selected ones of the memory consumers, a memory optimizer, and a system administrator; and
callback functions associated with each of the selected ones of the memory consumers, the callback functions being adapted to increase or reduce memory usage by an associated memory consumer under control of the centralized control function.
1 Assignment
0 Petitions
Accused Products
Abstract
Memory balancing and optimization services (MBOS) control a size of a plurality of memory heaps, and a memory optimizer for allocating and de-allocating memory for a plurality of respective memory consumers. The MBOS may be instantiated within an application program such as a database management system providing services to memory consumers within the application. Alternatively, the MBOS may be instantiated within an operating system for providing services to memory consumers that are applications such as database management systems, e-commerce engines, operating systems, customer relationship management (CRM), enterprise resource planning (ERP), or supply chain management (SCM). Alternatively, an MBOS is instantiated within the operating system to provide services to applications and an MBOS is instantiated within each application to provide services to memory consumers within the application.
-
Citations
20 Claims
-
1. A system for balancing and optimizing memory allocation in a computer system that supports a plurality of memory consumers, comprising:
-
a centralized control function adapted to serve memory reconfiguration requests from any one of;
selected ones of the memory consumers, a memory optimizer, and a system administrator; and
callback functions associated with each of the selected ones of the memory consumers, the callback functions being adapted to increase or reduce memory usage by an associated memory consumer under control of the centralized control function. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 19, 20)
-
-
2. A computer system having a system memory, an operating system that executes within the system memory and a plurality of memory consumers that compete for use of the system memory, comprising:
-
a callback function associated with respective memory heaps used by at least selected ones of the memory consumers; and
a memory balancing and optimization service (MBOS) that includes an application program interface (API) for accepting memory usage information and memory allocation request messages, the MBOS being adapted to send memory configuration messages to the respective callback functions to control a size of the respective memory heaps.
-
-
11. A method of balancing and optimizing memory allocation in a computer system having an operating system, system memory and a plurality of memory consumers that compete for use of the system memory, comprising computer-implemented steps of:
-
receiving a request from a memory consumer when a block of system memory is required, the request being received at an application programming interface (API) of a memory balancing and optimization services (MBOS) application instantiated on the computer system;
issuing a request from the MBOS to the operating system to get the block of memory, and if the request is unsuccessful;
issuing a request from the MBOS to a callback function associated with a memory heap used by the memory consumer to get the block of memory; and
if unsuccessful, issuing a request from the MBOS to respective callback functions of other memory consumers in a predefined set, to determine whether a memory block can be obtained from another member of the set. - View Dependent Claims (12, 13, 14)
-
-
15. A computer-readable medium storing program instructions for:
-
receiving a request from a memory consumer when a block of system memory is required, the request being received at an application programming interface (API) of a memory balancing and optimization services (MBOS) application instantiated on the computer system;
issuing a request from the MBOS to the operating system to get the block of memory, and if the request is unsuccessful;
issuing a request from the MBOS to a callback function associated with a memory heap used by the memory consumer to get the block of memory; and
if unsuccessful, issuing a request from the MBOS to respective callback functions of other memory consumers in a predefined set, to determine whether a memory block can be obtained from another member of the set. - View Dependent Claims (16, 17)
-
-
18. A method of balancing and optimizing memory allocation in a computer system having an operating system, system memory and a plurality of memory consumers that compete for use of the system memory, comprising computer-implemented steps of:
-
receiving at a an application programming interface (API) of a memory balancing and optimization services (MBOS) application instantiated on the computer system instructions to reconfigure memory usage by one of the memory consumers;
obtaining a memory grow_heap latch associated with a memory heap used by the memory consumer;
determining whether the memory usage is being reduced or increased; and
instructing a callback function associated with the memory heap to release or add memory to the memory heap in accordance with the reconfiguration instructions.
-
Specification