Coalescing writes for improved storage utilization

US9720596B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9720596-B1
Application numberUS-201414576952-A
CountryUS
Kind codeB1
Filing dateDec 19, 2014
Priority dateDec 19, 2014
Publication dateAug 1, 2017
Grant dateAug 1, 2017

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 data storage system that stores data in a set of RAID groups includes receiving IO requests specifying data to be written at different logical addresses and mapping the specified data to contiguous physical addresses, so as to produce contiguously-mapped data having a length equal to that of a full stripe of a RAID group. With data from the IO requests mapped to a contiguous, full-stripe range, the data storage system can write the data and its parity to a full stripe of the RAID group in a single set of operations.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of managing storage for a data object in a data storage system, the method comprising: realizing the data object in a file stored in a file system of the data storage system, the file having a logical address space, the file system mapping the logical address space to multiple physical addresses backed by a set of RAID groups (Redundant Array of Independent Disks) providing storage for the file system in a set of RAID-protected stripes; receiving IO requests specifying a set of data to be written to the data object at multiple logical addresses of the file, the logical addresses mapped by the file system to non-contiguous physical addresses; remapping the logical addresses to a range of contiguous physical addresses in the file system, the range of contiguous physical addresses having a length equal to that of a full stripe of the set of RAID-protected stripes; computing parity for the set of data; and writing the set of data and the parity to a full stripe of the set of RAID-protected stripes, wherein remapping the logical addresses of the file is performed prior to storing the set of data in the set of RAID groups, such that a first write of the set of data to the set of RAID groups is to the range of contiguous physical addresses. 2. The method of claim 1 , wherein each of the IO requests specifies host data to be written to the data object, and wherein the method further comprises, prior to remapping the logical addresses: persisting the host data specified by each of the IO requests in a persistent cache; and acknowledging completion of each of the IO requests after persisting the host data specified by the respective IO requests in the persistent cache. 3. The method of claim 2 , further comprising, after acknowledging completion of each of the IO requests, allocating data blocks to the file system in the range of contiguous physical addresses. 4. The method of claim 3 , wherein the file in which the data object is realized has an inode structure including a set of block pointers, the set of block pointers pointing to an initial set of data blocks storing data of the file prior to remapping, and wherein remapping the logical addresses includes changing the set of block pointers in the inode structure of the file to point from the initial set of data blocks to the allocated data blocks in the range of contiguous physical addresses. 5. The method of claim 4 , wherein the method further comprises: monitoring contiguous free space in the set of RAID-protected stripes; receiving additional IO requests specifying a second set of data to be written to the data object at a set of logical addresses within the logical address space of the file, the inode structure mapping the set of logical addresses to a set of non-contiguous physical addresses; and in response to the contiguous free space falling below a predetermined level, writing the second set of data in place at the set of non-contiguous physical addresses. 6. The method of claim 4 , wherein the method further comprises: monitoring an amount of dirty metadata in a metadata cache of the file system; receiving additional IO requests specifying a second set of data to be written to the data object at a set of logical addresses within the logical address space of the file, the inode structure mapping the set of logical addresses to a set of non-contiguous physical addresses; and in response to the amount of dirty metadata in the metadata cache exceeding a predetermined level, writing the second set of data in place at the set of non-contiguous physical addresses. 7. The method of claim 4 , wherein the method further comprises: monitoring a number of file system metadata transactions pending in a metadata transaction log of the file system; receiving additional IO requests specifying a second set of data to be written to the data object at a set of logical addresses within the logical address space of the file, the inode structure mapping the set of logical addresses to a set of non-contiguous physical addresses; and in response to the number of pending metadata transactions exceeding a predetermined level, writing the second set of data in place at the set of non-contiguous physical addresses. 8. The method of claim 4 , wherein the method further comprises: receiving an additional IO request specifying a second set of data to be written to the data object at a set of logical addresses within the logical address space of the file, the inode structure mapping the set of logical addresses to a set of contiguous physical addresses, the set of contiguous physical addresses having a length at least as great as that of one full stripe of the set of RAID-protected stripes; and in response to a size of the second set of data exceeding a predetermined level, writing the second set of data in place at the set of contiguous physical addresses. 9. The method of claim 4 , wherein, in response to additional IO requests, the acts of remapping and writing are preformed selectively based on multiple factors, the multiple factors including available contiguous storage space on the set of RAID-protected stripes and a current metadata processing workload handled by the file system. 10. The method of claim 4 , further comprising: receiving additional IO requests specifying a second set of data to be written to the data object; adding new block pointers to the inode structure of the file to accommodate the second set of data; allocating new data blocks to the file system at a set of contiguous physical addresses; mapping the new block pointers to point to the new data blocks at the set of contiguous physical addresses; and writing the second set of data to an integer number of full stripes of the set of RAID-protected stripes. 11. The method of claim 10 , further comprising: persisting the second set of data in the persistent cache: identifying data from the second set of data that are directed to contiguous logical addresses of the file; aggregating the identified data to produce aggregated data having a length equal to that of an integer number of data blocks; and flushing the aggregated data from the persistent cache to the file system in a single flushing operation. 12. The method of claim 4 , wherein the data object realized in the file is one of a file system, a LUN (Logical Unit Number), and a VVol (virtual volume). 13. The method of claim 4 , wherein the persistent cache includes DRAM (Dynamic Random Access Memory) that is battery backed-up and redundantly mirrored across multiple storage processors of the data storage system. 14. The method of claim 1 , wherein the set of data is received from a host, and wherein the method further comprises, upon receiving the IO requests, temporarily storing the set of data in a data log; and in response to the set of data being stored in the data log, acknowledging receipt of the set of data to the host, wherein remapping the logical addresses is performed after acknowledging receipt to the host, while the set of data are stored in the data log, and before the set of data has ever been written to the set of RAID groups, and wherein writing the set of data and the parity includes flushing the set of data from the data log to the range of contiguous physical addresses in the file system. 15. A computerized apparatus, comprising a set of processing units and memory, coupled to the set of processing units, the memory storing instructions which, when executed by the set of processing units, cause the set of processing units to: realize a data object in a file stored in a file

Assignees

Inventors

Classifications

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

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

  • Logical to physical mapping or translation of blocks or pages · CPC title

  • G06F3/0608Primary

    Saving storage space on storage systems · CPC title

  • Management of blocks · 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 US9720596B1 cover?
A technique for managing a data storage system that stores data in a set of RAID groups includes receiving IO requests specifying data to be written at different logical addresses and mapping the specified data to contiguous physical addresses, so as to produce contiguously-mapped data having a length equal to that of a full stripe of a RAID group. With data from the IO requests mapped to a con…
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/0866. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 01 2017 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 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).