Relieving memory pressure in a host using database memory management
AssigneeVMware, Inc.
InventorsBoris Weissman, Aleksandr V. Mirgorodskiy, Ganesh Venkitachalam, Feng Tian
Life of this patent
Estimating the term…
Abstract
Memory of a database management system (DBMS) that is running in a virtual machine is managed using techniques that integrate DBMS memory management with virtual machine memory management. Because of the integration, the effectiveness of DBMS memory management is preserved even though the physical memory allocated to the virtual machine may change during runtime as a result of varying memory demands of other applications, e.g., instances of other virtual machines, running on the same host computer as the virtual machine.
Claims21
A method of managing memory of a database management system running on a guest operating system in a virtual machine, the virtual machine being instantiated on a host computer, the method comprising:
- determining, by a controller running in the database management system, that a hypervisor has issued a first command to request memory from a driver running in the guest operating system of the virtual machine for re-allocation by the hypervisor;
- in response to determining that the hypervisor has issued the first command, performing:
- determining, by the controller, one or more memory pools in a plurality of memory pools, each memory pool managing a portion of memory allocated to the database management system;
- issuing, by the controller, one or more second commands to the one or more memory pools to analyze respective portions of memory, wherein the one or more memory pools determine memory to release from respective portions of memory based on a respective memory management policy for the one or more memory pools;
- and
- releasing, by the controller, an amount of memory allocated to the database management system in accordance with the memory that the one or more memory pools determined to release from respective portions of memory to the guest operating system, wherein the guest operating system allocates the released memory to the driver for satisfying the first command.
A non-transitory computer readable storage medium storing instructions for a database management system running on a guest operating system in a virtual machine, the virtual machine being instantiated on a host computer, wherein the instructions, when executed in the host computer, cause the host computer to carry out the steps of:
- determining, by a controller running in the database management system, that a hypervisor has issued a first command to request memory from a driver running in the guest operating system of the virtual machine for re-allocation by the hypervisor;
- in response to determining that the hypervisor has issued the first command, performing:
- determining, by the controller, one or more memory pools in a plurality of memory pools, each memory pool managing a portion of memory allocated to the database management system;
- issuing, by the controller, one or more second commands to the one or more memory pools to analyze respective portions of memory, wherein the one or more memory pools determine memory to release from respective portions of memory based on a respective memory management policy for the one or more memory pools;
- and
- releasing, by the controller, an amount of memory allocated to the database management system in accordance with the memory that the one or more memory pools determined to release from respective portions of memory to the guest operating system, wherein the guest operating system allocates the released memory to the driver for satisfying the first command.
A computer system comprising one or more processors and physical memory, the processors executing instances of virtual machines, one of which has a database management system running on a guest operating system therein, and programmed to:
- determine, by a controller running in the database management system, that a hypervisor has issued a first command to request memory from a driver running in the guest operating system of the virtual machine for re-allocation by the hypervisor;
- in response to determining that the hypervisor has issued the first command, performing:
- determine, by the controller, one or more memory pools in a plurality of memory pools, each memory pool managing a portion of memory allocated to the database management system;
- issue, by the controller, one or more second commands to the one or more memory pools to analyze respective portions of memory, wherein the one or more memory pools determine memory to release from respective portions of memory based on a respective memory management policy for the one or more memory pools;
- and
- release, by the controller, an amount of memory allocated to the database management system in accordance with the memory that the one or more memory pools determined to release from respective portions of memory to the guest operating system, wherein the guest operating system allocates the released memory to the driver for satisfying the first command.
Dependencies are inferred from the claim text.