Universal cache management system

US11755481B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11755481-B2
Application numberUS-201816153610-A
CountryUS
Kind codeB2
Filing dateOct 5, 2018
Priority dateFeb 28, 2011
Publication dateSep 12, 2023
Grant dateSep 12, 2023

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.

Techniques for universal cache management are described. In an example embodiment, a plurality of caches are allocated, in volatile memory of a computing device, to a plurality of data-processing instances, where each one of the plurality of caches is exclusively allocated to a separate one of the plurality of data-processing instances. A common cache is allocated in the volatile memory of the computing device, where the common cache is shared by the plurality of data-processing instances. Each instance of the plurality of data-processing instances is configured to: identify a data block in the particular cache allocated to that instance, where the data block has not been changed since the data block was last persistently written to one or more storage devices; cause the data block to be stored in the common cache; and remove the data block from the particular cache. Data blocks in the common cache are maintained without being persistently written to the one or more storage devices.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: allocating, in a first random access memory (RAM) of a first computing device, a first cache exclusively to a first instance of two or more data-processing instances, wherein the first cache is configured to store copies of a first set of data blocks that are persistently stored on one or more storage devices, and wherein the allocating the first cache is performed, at least in part, by an operating system (OS) instance of the first computing devices; allocating, in a second RAM of a second computing device, a second cache exclusively to a second instance of the two or more data-processing instances, wherein the second cache is configured to store copies of a second set of data blocks that are persistently stored on the one or more storage devices, and wherein the allocating the second cache is performed, at least in part, by an OS instance of the second computing device; allocating at least a portion of a common cache in a third RAM of a third computing device; the first instance performing: identifying for eviction from the first cache a first data block at least because the first data block has not been changed since the first data block was last persistently written to the one or more storage devices; in response to identifying for eviction from the first cache a first data block at least because the first data block has not been changed since the first data block was last persistently written to the one or more storage devices: causing the first data block to be stored in the common cache, and removing the first data block from the first cache; the second instance performing: identifying for eviction from the second cache a second data block at least because the second data block has not been changed since the second data block was last persistently written to the one or more storage devices: in response to identifying for eviction from the second cache a second data block at least because the second data block has not been changed since the second data block was last persistently written to the one or more storage devices: causing the second data block to be stored in the common cache, and removing the second data block from the second cache; maintaining data blocks, including the first data block and the second data block, in the common cache without persistently writing the data blocks to the one or more storage devices. 2. The method of claim 1 , wherein the two or more data-processing instances are two or more database instances that manage one or more databases that are stored on the one or more storage devices. 3. The method of claim 1 , further comprising: in response to a first request for data from the first data block, the first instance retrieving the first data block from the common cache instead of the one or more storage devices, and storing the first data block back into the first cache; and in response to a second request for data from the second data block, the second instance retrieving the second data block from the common cache instead of the one or more storage devices, and storing the second data block back into the second cache. 4. The method of claim 3 , wherein the first instance retrieving the first data block from the common cache includes sending a request for the first data block to the third computing device. 5. The method of claim 4 , further including: maintaining a directory that maps block-identifying data of certain data blocks to the common cache, said certain data blocks being stored in the common cache; before the first instance retrieving the first data block, said first instance uses the directory to determine the first data block is stored in said common cache. 6. The method of claim 1 , wherein said first RAM and said second RAM comprise volatile memory. 7. One or more non-transitory computer-readable media storing one or more sequences of one or more instructions which, when executed by one or more processors, cause: allocating, in a first random access memory (RAM) of a first computing device, a first cache exclusively to a first instance of two or more data-processing instances, wherein the first cache is configured to store copies of a first set of data blocks that are persistently stored on one or more storage devices, and wherein the allocating the first cache is performed, at least in part, by an operating system (OS) instance of the first computing device; allocating, in a second RAM of a second computing device, a second cache exclusively to a second instance of the two or more data-processing instances, wherein the second cache is configured to store copies of a second set of data blocks that are persistently stored on the one or more storage devices, and wherein the allocating the second cache is performed, at least in part, by an OS instance of the second computing device; allocating at least a portion of a common cache in a third RAM of a third computing device; the first instance performing: identifying for eviction from the first cache a first data block at least because the first data block has not been changed since the first data block was last persistently written to the one or more storage devices; in response to identifying for eviction from the first cache a first data block at least because the first data block has not been changed since the first data block was last persistently written to the one or more storage devices: causing the first data block to be stored in the common cache, and removing the first data block from the first cache; the second instance performing: identifying for eviction from the second cache a second data block at least because the second data block has not been changed since the second data block was last persistently written to the one or more storage devices: in response to identifying for eviction from the second cache a second data block at least because the second data block has not been changed since the second data block was last persistently written to the one or more storage devices: causing the second data block to be stored in the common cache, and removing the second data block from the second cache; maintaining data blocks, including the first data block and the second data block, in the common cache without persistently writing the data blocks to the one or more storage devices. 8. The one or more non-transitory computer-readable media of claim 7 , wherein the two or more data-processing instances are two or more database instances that manage one or more databases that are stored on the one or more storage devices. 9. The one or more non-transitory computer-readable media of claim 7 , wherein maintaining data blocks in the common cache comprises maintaining block-identifying data for each of the data blocks stored in the common cache. 10. The one or more non-transitory computer-readable media of claim 7 , wherein the one or more sequences of instructions include instructions that, when executed by said one or more processors, cause: in response to a first request for data from the first data block, the first instance retrieving the first data block from the common cache instead of the one or more storage devices, and storing the first data block back into the first cache; and in response to a second request for data from the second data block, the second instance retrieving the second data block from the common cache instead of the one or more storage devices, and storing the second data block back into the second cache. 11. The one or more non-transitory computer-readable media of claim 10 , wherein the first instance retrieving the first data block from the common cache includes sending a request f

Assignees

Inventors

Classifications

  • with multilevel cache hierarchies · CPC title

  • Database cache management · CPC title

  • with a shared cache · CPC title

  • with two or more cache hierarchy levels (with multilevel cache hierarchies G06F12/0811) · CPC title

  • Employing cache memory using specific memory technology · CPC title

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 US11755481B2 cover?
Techniques for universal cache management are described. In an example embodiment, a plurality of caches are allocated, in volatile memory of a computing device, to a plurality of data-processing instances, where each one of the plurality of caches is exclusively allocated to a separate one of the plurality of data-processing instances. A common cache is allocated in the volatile memory of the …
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/0811. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 12 2023 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 10 related publications on this page (citations in our corpus or others sharing the same primary CPC).