Dual personality memory for autonomous multi-tenant cloud environment

US12013787B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12013787-B2
Application numberUS-202217962401-A
CountryUS
Kind codeB2
Filing dateOct 7, 2022
Priority dateOct 7, 2022
Publication dateJun 18, 2024
Grant dateJun 18, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12013787B2 cover?
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 ent…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/0882. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 18 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).