IP Library Granted Patent US 9,934,163
Granted Patent B1
US 9,934,163 · App. 15/282,538 · Granted Apr 3, 2018

Selectively delaying cache flushing to promote write efficiency

Inventors: Philippe Armangau (Acton, MA); Chris Seibel (Walpole, MA); Henry Austin Spang, IV (Hopkinton, MA); David John Agans (Wilton, NH)
Assignee: EMC IP Holding Company LLC
G06F12/128G06F12/0808G06F2212/621G06F2212/69
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,934,163
App. No.
15/282,538
Granted
Apr 3, 2018
Kind
B1
Abstract

A technique for managing storage in a data storage system includes ingesting host data into a data log backed by pages in a cache. The host data are addressed to specified locations in a data object stored in persistent storage devices. When mapping pages in cache to respective target locations in the persistent storage devices, a flag is selectively asserted to indicate whether there is contiguous free space at the target locations. The cache responds to the flag by delaying flushing of flagged pages, which provides more time for the cache to aggregate pages that map to contiguous free space. Meanwhile, pages that are not flagged can be flushed more quickly, enabling the cache to operate efficiently even though flushing of some pages is delayed.

Claims (54)

1. A method of managing write requests in a data storage system, the method comprising:

receiving IO (Input/Output) requests specifying writes of host data to identified portions of a data object;

ingesting the host data into a data log, the data log storing the host data in a set of pages of a cache;

performing a rename operation on each of the set of pages in the cache, each rename operation (i) identifying a target location in persistent storage to which that page will be flushed and (ii) providing a coalesce-expected flag for that page to indicate whether the persistent storage has contiguous free space at the target location; and

for each of the set of pages for which the coalesce-expected flag is asserted, processing that page for delayed flushing from the cache to the respective target location, the delayed flushing providing more time prior to flushing for the cache to aggregate contiguous writes than would be available if the page were processed for less-delayed flushing.

2. The method of claim 1 , further comprising, for each of the set of pages for which the coalesce-expected flag is not asserted, processing that page for less-delayed flushing from the cache to the respective target location.

3. The method of claim 2 , further comprising:

aggregating a predetermined number of pages for which the coalesce-expected flag is asserted and for which respective rename operations identify target locations in the persistent storage that are contiguous; and

once the predetermined number of pages have been aggregated, processing each of the aggregated pages going forward for less-delayed flushing from the cache to the respective target locations.

4. The method of claim 3 ,

wherein the cache employs a flushing policy that directs the cache to flush pages based on age, such that the cache flushes older pages before it flushes younger pages, and

wherein processing a page for delayed flushing causes the page to age at a slower rate whereas processing a page for less-delayed flushing causes the page to age at a faster rate.

5. The method of claim 4 ,

wherein the data storage system stores the data object in a file system, the file system having a physical address space backed by the persistent storage, and

wherein each of a set of ranges of contiguous physical addresses in the file system is backed by a respective range of contiguous storage locations in the persistent storage.

6. The method of claim 4 , wherein identifying the target location to which each of the set of pages will be flushed includes mapping a logical address to which host data in that page is directed to a corresponding physical address in the file system at which that host data will be placed.

7. The method of claim 6 ,

wherein at least a portion of the file system is rendered as a set of windows, each window including a range of contiguous physical addresses in the file system backed by a corresponding range of contiguous storage locations in the persistent storage, and

wherein providing the coalesce-expected flag for a page includes asserting the coalesce-expected flag in response to the physical address in the file system to which that page is mapped residing within a window that has free space.

8. The method of claim 7 ,

wherein the cache arranges pages into groups using reference structures, each reference structure pointing to multiple pages and aligning with a respective range of contiguous physical address space in the file system, and

wherein the method further includes flushing pages pointed to by a reference structure by flushing all pages pointed to by that reference structure together at one time.

9. The method of claim 8 , wherein a reference structure is made to point to a cache page in response to performing a rename operation on that cache page that identifies a mapped location in the file system to which that reference structure is aligned, and wherein the reference structure is made to point to additional cache pages over time as additional rename operations map pages to other physical addresses to which that reference structure is aligned.

10. A data storage system, comprising control circuitry that includes a set of processing units coupled to memory, the control circuitry constructed and arranged to:

receive IO (Input/Output) requests specifying writes of host data to identified portions of a data object;

ingest the host data into a data log, the data log storing the host data in a set of pages of a cache;

perform a rename operation on each of the set of pages in the cache, each rename operation (i) identifying a target location in persistent storage to which that page will be flushed and (ii) providing a coalesce-expected flag for that page to indicate whether the persistent storage has contiguous free space at the target location; and

for each of the set of pages for which the coalesce-expected flag is asserted, processing that page for delayed flushing from the cache to the respective target location, the delayed flushing providing more time prior to flushing for the cache to aggregate contiguous writes than would be available if the page were processed for less-delayed flushing.

11. The data storage system of claim 10 , wherein the control circuitry is further constructed and arranged to:

aggregate a predetermined number of pages for which the coalesce-expected flag is asserted and for which respective rename operations identify target locations in the persistent storage that are contiguous; and

once the predetermined number of pages have been aggregated, process each of the aggregated pages going forward for less-delayed flushing from the cache to the respective target locations.

12. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a data storage system, cause the control circuitry to perform a method for managing write requests, the method comprising:

receiving IO (Input/Output) requests specifying writes of host data to identified portions of a data object;

ingesting the host data into a data log, the data log storing the host data in a set of pages of a cache;

performing a rename operation on each of the set of pages in the cache, each rename operation (i) identifying a target location in persistent storage to which that page will be flushed and (ii) providing a coalesce-expected flag for that page to indicate whether the persistent storage has contiguous free space at the target location; and

for each of the set of pages for which the coalesce-expected flag is asserted, processing that page for delayed flushing from the cache to the respective target location, the delayed flushing providing more time prior to flushing for the cache to aggregate contiguous writes than would be available if the page were processed for less-delayed flushing.

13. The computer program product of claim 12 , wherein the method further comprises, for each of the set of pages for which the coalesce-expected flag is not asserted, processing that page for less-delayed flushing from the cache to the respective target location.

14. The computer program product of claim 13 , wherein the method further comprises:

aggregating a predetermined number of pages for which the coalesce-expected flag is asserted and for which respective rename operations identify target locations in the persistent storage that are contiguous; and

once the predetermined number of pages have been aggregated, processing each of the aggregated pages going forward for less-delayed flushing from the cache to the respective target locations.

15. The computer program product of claim 14 ,

wherein the cache employs a flushing policy that directs the cache to flush pages based on age, such that the cache flushes older pages before it flushes younger pages, and

wherein processing a page for delayed flushing causes the page to age at a slower rate whereas processing a page for less-delayed flushing causes the page to age at a faster rate.

16. The computer program product of claim 15 ,

wherein the data storage system stores the data object in a file system, the file system having a physical address space backed by the persistent storage, and

wherein each of a set of ranges of contiguous physical addresses in the file system is backed by a respective range of contiguous storage locations in the persistent storage.

17. The computer program product of claim 15 , wherein identifying the target location to which each of the set of pages will be flushed includes mapping a logical address to which host data in that page is directed to a corresponding physical address in the file system at which that host data will be placed.

18. The computer program product of claim 17 ,

wherein at least a portion of the file system is rendered as a set of windows, each window including a range of contiguous physical addresses in the file system backed by a corresponding range of contiguous storage locations in the persistent storage, and

wherein providing the coalesce-expected flag for a page includes asserting the coalesce-expected flag in response to the physical address in the file system to which that page is mapped residing within a window that has free space.

19. The computer program product of claim 18 ,

wherein the cache arranges pages into groups using reference structures, each reference structure pointing to multiple pages and aligning with a respective range of contiguous physical address space in the file system, and

wherein the method further includes flushing pages pointed to by a reference structure by flushing all pages pointed to by that reference structure together at one time.

20. The computer program product of claim 19 , wherein a reference structure is made to point to a cache page in response to performing a rename operation on that cache page that identifies a mapped location in the file system to which that reference structure is aligned, and wherein the reference structure is made to point to additional cache pages over time as additional rename operations map pages to other physical addresses to which that reference structure is aligned.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2017
From: ARMANGAU, PHILIPPE; SEIBEL, CHRISTOPHER A.; SPANG IV, HENRY AUSTIN; AGANS, DAVID JOHN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044266/0899 →