Sizing volatile memory cache based on flash-based cache usage
US-9043533-B1 · May 26, 2015 · US
US9864683B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9864683-B1 |
| Application number | US-201414501939-A |
| Country | US |
| Kind code | B1 |
| Filing date | Sep 30, 2014 |
| Priority date | Sep 30, 2014 |
| Publication date | Jan 9, 2018 |
| Grant date | Jan 9, 2018 |
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 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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.