Managing cache for improved data availability by associating cache pages with respective data objects

US9864683B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9864683-B1
Application numberUS-201414501939-A
CountryUS
Kind codeB1
Filing dateSep 30, 2014
Priority dateSep 30, 2014
Publication dateJan 9, 2018
Grant dateJan 9, 2018

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 technique for managing a cache in a data storage system includes creating metadata that associates cache pages with respective data objects and storing the metadata in a location accessible to a manager of the cache. Upon a failure in the cache, the cache manager checks the metadata to identify any data objects for which the cache stores dirty pages. The cache manager then coordinates with other system resources to take the identified data objects offline.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of managing a cache in a data storage system, the method comprising: creating metadata by a cache manager operating in the data storage system, the metadata associating multiple data objects hosted by the data storage system with (i) identifying information for extents of storage that back the respective data objects in the data storage system, (ii) respective ranges of cache pages that cache data of the respective data objects, and (iii) respective clean/dirty cache state information, the extents of storage provisioned from a set of internal volumes of the data storage system, each extent providing a logical range of multiple storage blocks from an internal volume, the clean/dirty state information provided at per-extent granularity and indicating, for each extent, whether any cache page backed by the extent is dirty, each of one or more of the data objects composed of storage extents provisioned from multiple internal volumes in a one-to-many manner wherein each such data object is supported by storage extents from multiple internal volumes, each of one or more of the internal volumes having storage extents provisioned to multiple data objects in a one-to-many manner wherein each such internal volume supplies storage extents to multiple data objects; upon a failure of the cache, accessing the metadata by the cache manager to identify, from the clean/dirty cache state information, a set of the data objects for which the clean/dirty cache state information identifies at least one dirty extent; and taking offline each of the identified set of data objects, each of the identified set of data objects taken offline composed of storage extents provisioned from greater than one of the set of internal volumes. 2. The method of claim 1 , wherein creating the metadata includes storing, in non-volatile memory accessible to the cache manager, the identifying information for each storage extent that backs the respective data objects. 3. The method of claim 2 , wherein storing the identifying information for each storage extent is performed in response to the data storage system provisioning the respective storage extent to one of the multiple data objects. 4. The method of claim 3 , wherein each of the set of internal volumes is formed from a RAID group (group formed from a Redundant Array of Independent Disks) in the data storage system. 5. The method of claim 1 , wherein storing the identifying information for each storage extent includes (i) storing an identifier of the internal volume from which the extent was provisioned and (ii) storing an LBA range (range of Logical Block Addresses) of the storage extent within the respective internal volume. 6. The method of claim 5 , wherein the data storage system represents each of the data objects in the form of a virtual LUN (Logical Unit Number), and wherein storing the identifying information for each storage extent includes storing an identifier of the virtual LUN to which the extent was provisioned in connection with the identifier of the internal volume and the LBA range of the storage extent within the internal volume. 7. The method of claim 6 , wherein the method further comprises loading pages into the cache from a group of storage extents that have already been provisioned to the data objects, and wherein creating the metadata further comprises storing, in the non-volatile memory accessible to the cache manager, a clean/dirty entry for each of the group of storage extents. 8. The method of claim 7 , wherein creating the metadata further comprises storing, in the non-volatile memory accessible to the cache manager, a tarnished/untarnished entry for each of the group of storage extents. 9. The method of claim 8 , further comprising creating a page memory map, the page memory map organized on a per-cache-page basis and mapping each cache page to a corresponding location in one of the group of storage extents. 10. The method of claim 9 , wherein accessing the metadata by the cache manager to identify the set of data objects includes identifying the virtual LUN associated with each storage extent for which the corresponding clean/dirty entry is marked as dirty. 11. The method of claim 9 , wherein the method further comprises, after the cache has been repaired following the failure of the cache, the cache manager accessing the metadata to identify each of the group of storage extents for which the corresponding tarnished/untarnished entry was marked as tarnished, and invalidating all cache pages from each storage extent marked as tarnished. 12. A data storage system comprising control circuitry including a set of processing units and memory coupled to the set of processing units, the control circuitry constructed and arranged to: create metadata by a cache manager operating in the data storage system, the metadata associating multiple data objects hosted by the data storage system with (i) identifying information for extents of storage that back the respective data objects in the data storage system, (ii) respective ranges of cache pages that cache data of the respective data objects, and (iii) respective clean/dirty cache state information, the extents of storage provisioned from a set of internal volumes of the data storage system, each extent providing a logical range of multiple storage blocks from an internal volume, the clean/dirty state information provided at per-extent granularity and indicating, for each extent, whether any cache page backed by the extent is dirty, each of one or more of the data objects composed of storage extents provisioned from multiple internal volumes in a one-to-many manner wherein each such data object is supported by storage extents from multiple internal volumes, each of one or more of the internal volumes having storage extents provisioned to multiple data objects in a one-to-many manner wherein each such internal volume supplies storage extents to multiple data objects; upon a failure of the cache, access the metadata by the cache manager to identify, from the clean/dirty cache state information, a set of the data objects for which the clean/dirty cache state information identifies at least one dirty extent; and take offline each of the identified set of data objects, each of the identified set of data objects taken offline composed of storage extents provisioned from greater than one of the set of internal volumes. 13. The data storage system of claim 12 , wherein, when creating the metadata, the control circuitry is further constructed and arranged to store, in non-volatile memory accessible to the cache manager, the identifying information for each storage extent that backs the respective data objects. 14. The data storage system of claim 13 , wherein the data storage system represents each of the data objects in the form of a virtual LUN (Logical Unit Number), and wherein, when constructed and arranged to store the identifying information for each storage extent, the control circuitry is further constructed and arranged to (i) store an identifier of the internal volume from which the extent was provisioned, (ii) store an LBA range (range of Logical Block Addresses) of the storage extent within the respective internal volume, and (iii) store an identifier of the virtual LUN to which the extent was provisioned. 15. A non-transitory, computer-readable medium including instructions which, when executed by a set of processing units of a data storage system, cause the data storage system to perform a method of managing a cache, the method comprising: creating metadata by a cache manager operating in the data storage system, the

Assignees

Inventors

Classifications

  • with main memory updating (G06F12/0806 takes precedence) · CPC title

  • configured as RAID · CPC title

  • in relation to data integrity, e.g. data losses, bit errors · CPC title

  • Disk arrays, e.g. RAID, JBOD · CPC title

  • Validity control, e.g. using flags, time stamps or sequence numbers · 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 US9864683B1 cover?
A technique for managing a cache in a data storage system includes creating metadata that associates cache pages with respective data objects and storing the metadata in a location accessible to a manager of the cache. Upon a failure in the cache, the cache manager checks the metadata to identify any data objects for which the cache stores dirty pages. The cache manager then coordinates with ot…
Who is the assignee on this patent?
Emc Corp, Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/0804. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 09 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).