Caching data between a database server and a storage system

US9405694B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9405694-B2
Application numberUS-201414487358-A
CountryUS
Kind codeB2
Filing dateSep 16, 2014
Priority dateSep 14, 2009
Publication dateAug 2, 2016
Grant dateAug 2, 2016

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 are provided for using an intermediate cache between the shared cache of an application and the non-volatile storage of a storage system. The application may be any type of application that uses a storage system to persistently store data. The intermediate cache may be local to the machine upon which the application is executing, or may be implemented within the storage system. In one embodiment where the application is a database server, the database system includes both a DB server-side intermediate cache, and a storage-side intermediate cache. The caching policies used to populate the intermediate cache are intelligent, taking into account factors that may include which object an item belongs to, the item type of the item, a characteristic of the item, or the type of operation in which the item is involved.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: at a storage system, responding to input/output (I/O) requests from one or more database servers, the I/O requests requesting disk blocks stored on one or more storage devices within the storage system, the disk blocks storing data representative of database objects with respect to which the one or more database servers perform database operations; wherein responding to the I/O requests comprises, when one or more of the disk blocks are found among cached disk blocks that have been cached in an intermediate cache within the storage system, retrieving the one or more of the requested disk blocks from the intermediate cache instead of the one or more storage devices; for a given disk block of the cached disk blocks, the storage system determining when to replace the given disk block with another requested disk block, the determining being based at least partially upon whether a given database object, for which the given disk block stores data, is associated with a particular designation; wherein the method is performed by one or more computing devices. 2. The method of claim 1 further comprising: storing the given disk block in a reserved area of the intermediate cache because the given database object is associated with the particular designation; storing a second disk block in an unreserved area of the of the intermediate cache in response to determining that the second disk block stores data for a second database object that is not associated with the particular designation. 3. The method of claim 1 , wherein the given database object is associated with the particular designation; the method further comprising determining to replace the given disk block with a requested disk block only when the requested disk block stores data for a database object that also is associated with the particular designation. 4. The method of claim 1 further comprising: receiving, at the storage system, prior to given disk block being cached, data from the one or more database servers that indicates that the given database object has the particular designation; receiving, at the storage system, data from a particular database server of the one or more database servers that indicates that the given disk block stores data for the given database object. 5. The method of claim 1 wherein the one or more database servers are a plurality of database servers for which the storage system stores the disk blocks representative of the database objects. 6. A method comprising: in an intermediate cache within a storage system, caching disk blocks retrieved from one or more storage devices within the storage system, the disk blocks storing data representative of objects with respect to which one or more database servers perform database operations; for each object of the objects, determining which of the disk blocks store data for said each object; maintaining a timer reflecting how much time has elapsed since any disk block that stores data for a given object of the objects was last requested from the storage system; when the timer indicates that no disk block that stores data for the given object has been requested from the storage system within a certain period of time, expiring all disk blocks in the intermediate cache that store data for the given object; wherein the method is performed by one or more computing devices. 7. The method of claim 6 , wherein the storage system is configured to maintain the timer when the one or more database servers fail to inform the storage system that the given object has been dropped. 8. The method of claim 6 , wherein the one or more database servers are a plurality of database servers, the method further comprising maintaining the timer at the storage system. 9. The method of claim 6 , further comprising: receiving, at the storage system, data from the one or more database servers that indicates that the given object has a particular designation; wherein the storage system maintains the timer based on the given object having the particular designation. 10. The method of claim 6 , wherein expiring all disk blocks in the intermediate cache that store data for the given object comprises freeing storage occupied in the intermediate cache by the disk blocks that store data for the given object so that the storage is available to cache other disk blocks. 11. The method of claim 6 , wherein expiring all disk blocks in the intermediate cache that store data for the given object comprises moving the disk blocks that store data for the given object from a reserved storage area to an unreserved storage area. 12. One or more non-transitory storage media storing sequences of instructions which, when executed by one or more processors, cause performance of: at a storage system, responding to input/output (I/O) requests from one or more database servers, the I/O requests requesting disk blocks stored on one or more storage devices within the storage system, the disk blocks storing data representative of database objects with respect to which the one or more database servers perform database operations; wherein responding to the I/O requests comprises, when one or more of requested disk blocks are found among cached disk blocks that have been cached in an intermediate cache within the storage system, retrieving the one or more of the requested disk blocks from the intermediate cache instead of the one or more storage devices; and for a given disk block of the cached disk blocks, the storage system determining when to replace the given disk block with another requested disk block, the determining being based at least partially upon whether a given database object, for which the given disk block stores data, is associated with a particular designation. 13. The one or more non-transitory storage media of claim 12 wherein the sequences of instructions further include instructions for: storing the given disk block in a reserved area of the intermediate cache because the given database object is associated with the particular designation; storing a second disk block in an unreserved area of the of the intermediate cache in response to determining that the second disk block stores data for a second database object that is not associated with the particular designation. 14. The one or more non-transitory storage media of claim 12 , wherein the given database object is associated with the particular designation; wherein the sequences of instructions further include instructions for determining to replace the given disk block with a requested disk block only when the requested disk block stores data for a database object that also is associated with the particular designation. 15. The one or more non-transitory storage media of claim 12 wherein the sequences of instructions further include instructions for: receiving, at the storage system, prior to given disk block being cached, data from the one or more database servers that indicates that the given database object has the particular designation; receiving, at the storage system, data from a particular database server of the one or more database servers that indicates that the given disk block stores data for the given database object. 16. The one or more non-transitory storage media of claim 12 wherein the one or more database servers are a plurality of database servers for which the storage system is configured to store the disk blocks representative of the database objects. 17. One or more non-transitory storage media storing sequences of instructions which, when

Assignees

Inventors

Classifications

  • In host system · CPC title

  • using selective caching, e.g. bypass · CPC title

  • Structured object, e.g. database record · CPC title

  • for peripheral storage systems, e.g. disk cache · CPC title

  • with two or more cache hierarchy levels (with multilevel cache hierarchies G06F12/0811) · 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 US9405694B2 cover?
Techniques are provided for using an intermediate cache between the shared cache of an application and the non-volatile storage of a storage system. The application may be any type of application that uses a storage system to persistently store data. The intermediate cache may be local to the machine upon which the application is executing, or may be implemented within the storage system. In on…
Who is the assignee on this patent?
Oracle Int Corp, Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/0866. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 02 2016 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).