Inter-server memory pooling
US-2021132999-A1 · May 6, 2021 · US
US12013787B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12013787-B2 |
| Application number | US-202217962401-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 7, 2022 |
| Priority date | Oct 7, 2022 |
| Publication date | Jun 18, 2024 |
| Grant date | Jun 18, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A computing device is configured to allocate memory for exclusive use of an execution entity from both a shared memory area and a private memory area of the device. Specifically, the shared memory area is configured with a united memory pool (UMP) component. The UMP component is configured to provide portions of huge page-based memory to execution entities for exclusive use of the execution entities. Memory granules that are allocated to the UMP component are divided into smaller memory chunks (which are smaller than a huge page), each of which can be allocated for exclusive use of an execution entity. These memory chunks are mapped to virtual address spaces of the assigned execution entities. Because memory granules can be allocated to, and deallocated from, the UMP component at run-time, the amount of memory that is available for private data generated by execution entities is able to be dynamically adjusted.
Opening claim text (preview).
What is claimed is: 1. A computer-executed method comprising: allocating, for exclusive use of a first execution entity, a first portion of memory from a private memory area having a first page size; allocating, for exclusive use of a second execution entity, a second portion of memory from a shared memory area having a second page size that is different from the first page size, wherein: the shared memory area comprises a pool of shared memory structures that includes a unified memory pool structure, the unified memory pool structure comprises a plurality of memory granules, each memory granule of the plurality of memory granules comprising a plurality of memory chunks, the second portion of memory is allocated from the unified memory pool structure and comprises a particular memory chunk in a particular memory granule of the plurality of memory granules; determining that the unified memory pool structure requires additional memory; and in response to determining that the unified memory pool structure requires additional memory, allocating a memory granule, other than the memory granules of the plurality of memory granules, to the unified memory pool structure, wherein the method is performed by one or more computing devices. 2. The computer-executed method of claim 1 , further comprising allocating, for exclusive use of the first execution entity, a third portion of memory from the shared memory area. 3. The computer-executed method of claim 1 , wherein: all allocated memory chunks within the particular memory granule are allocated for exclusive use of execution entities associated with a particular tenant of a plurality of tenants of a multi-tenant database management system; and the second execution entity is associated with the particular tenant. 4. The computer-executed method of claim 3 , further comprising: for each tenant of the plurality of tenants, maintaining an ordered list of memory granules, of the plurality of memory granules, that are associated with said each tenant; wherein the particular memory granule is included in a particular ordered list of memory granules associated with the particular tenant; and wherein said allocating the second portion of memory from the particular memory granule is based, at least in part, on analyzing the particular ordered list of memory granules in an order indicated by the particular ordered list of memory granules. 5. The computer-executed method of claim 1 , further comprising: determining that a second memory granule, of the plurality of memory granules, has not been used for a threshold amount of time; and in response to determining that the second memory granule has not been used for the threshold amount of time, releasing the second memory granule from the unified memory pool structure. 6. The computer-executed method of claim 1 , wherein: said allocating the second portion for exclusive use of the second execution entity comprises mapping memory locations of the second portion of memory to a virtual address space for the second execution entity; the method further comprises, after allocating the second portion for exclusive use of the second execution entity, releasing the second portion of memory from the second execution entity comprising removing a mapping of the second portion of memory from the virtual address space for the second execution entity. 7. One or more non-transitory computer readable media storing one or more sequences of instructions that, when executed by one or more processors, cause: allocating, for exclusive use of a first execution entity, a first portion of memory from a private memory area having a first page size; allocating, for exclusive use of a second execution entity, a second portion of memory from a shared memory area having a second page size that is different from the first page size, wherein: the shared memory area comprises a pool of shared memory structures that includes a unified memory pool structure, the unified memory pool structure comprises a plurality of memory granules, each memory granule of the plurality of memory granules comprising a plurality of memory chunks, the second portion of memory is allocated from the unified memory pool structure and comprises a particular memory chunk in a particular memory granule of the plurality of memory granules; determining that the unified memory pool structure requires additional memory; and in response to determining that the unified memory pool structure requires additional memory, allocating a memory granule, other than the memory granules of the plurality of memory granules, to the unified memory pool structure. 8. The one or more non-transitory computer readable media of claim 7 , wherein the one or more sequences of instructions further comprise instructions that, when executed by one or more processors, cause allocating, for exclusive use of the first execution entity, a third portion of memory from the shared memory area. 9. The one or more non-transitory computer readable media of claim 7 , wherein: all allocated memory chunks within the particular memory granule are allocated for exclusive use of execution entities associated with a particular tenant of a plurality of tenants of a multi-tenant database management system; and the second execution entity is associated with the particular tenant. 10. The one or more non-transitory computer readable media of claim 9 , wherein the one or more sequences of instructions further comprise instructions that, when executed by one or more processors, cause: for each tenant of the plurality of tenants, maintaining an ordered list of memory granules, of the plurality of memory granules, that are associated with said each tenant; wherein the particular memory granule is included in a particular ordered list of memory granules associated with the particular tenant; and wherein said allocating the second portion of memory from the particular memory granule is based, at least in part, on analyzing the particular ordered list of memory granules in an order indicated by the particular ordered list of memory granules. 11. The one or more non-transitory computer readable media of claim 7 , wherein the one or more sequences of instructions further comprise instructions that, when executed by one or more processors, cause: determining that a second memory granule, of the plurality of memory granules, has not been used for a threshold amount of time; and in response to determining that the second memory granule has not been used for the threshold amount of time, releasing the second memory granule from the unified memory pool structure. 12. The one or more non-transitory computer readable media of claim 7 , wherein: said allocating the second portion for exclusive use of the second execution entity comprises mapping memory locations of the second portion of memory to a virtual address space for the second execution entity; the one or more sequences of instructions further comprise instructions that, when executed by one or more processors, cause, after allocating the second portion for exclusive use of the second execution entity, releasing the second portion of memory from the second execution entity comprising removing a mapping of the second portion of memory from the virtual address space for the second execution entity.
with a shared cache · CPC title
Free address space management · CPC title
Virtual address space management · CPC title
Space efficiency improvement · CPC title
Address space sharing · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.