IP Library Granted Patent US 10,235,248
Granted Patent B1
US 10,235,248 · App. 15/498,841 · Granted Mar 19, 2019

Processing I/O operations in parallel while maintaining read/write consistency using range and priority queues in a data protection system

Inventors: Balaji Subramanian (Fremont, CA); Yamini Allu (Sunnyvale, CA); Srisailendra Yallapragada (Cupertino, CA); Sirisha Kaipa (Cupertino, CA); Vrushali Kulkarni (Sunnyvale, CA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F11/1453G06F11/1469G06F17/30156G06F17/30194G06F2201/80G06F2201/82
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 10,235,248
App. No.
15/498,841
Granted
Mar 19, 2019
Kind
B1
Abstract

In one example, a method includes receiving a stream that identifies I/O operations requested to be performed with respect to a data grouping, and identifying, in the stream, random I/O requests and sequential I/O requests. Next, the stream is split into an incoming queue containing the sequential I/O requests and a priority/processing queue containing the random I/O requests. A metadata load queue is then defined by assigning each of the random I/O requests to a respective range of metadata. The metadata of each range is loaded, and the random I/O requests re-queued. Using the loaded metadata, a random I/O operation is performed that corresponds to one of the random I/O requests. Finally, the random I/O operation and a sequential I/O operation are performed concurrently with each other.

Claims (38)

1. A method, comprising:

receiving a stream that identifies I/O operations requested to be performed with respect to a data grouping;

identifying, in the stream, random I/O requests and sequential I/O requests;

queuing the sequential I/O requests in a priority/processing queue and processing the sequential I/O requests immediately without waiting for loading of any metadata;

defining a metadata load queue by assigning each of the random I/O requests to a respective range of metadata;

loading the metadata of each range;

re-queuing the random I/O requests;

using the loaded metadata, performing a random I/O operation that corresponds to one of the random I/O requests; and

performing the random I/O operation and a sequential I/O operation concurrently with each other.

2. The method as recited in claim 1 , wherein each metadata range corresponds to a respective set of one or more data segments.

3. The method as recited in claim 1 , wherein the metadata and the data segments are stored in different respective types of storage.

4. The method as recited in claim 1 , wherein the random I/O requests are re-queued in the priority/processing queue in the same order, relative to each other, in which they were initially received as part of the stream.

5. The method as recited in claim 1 , wherein metadata included in the metadata ranges comprises part of a metadata tree that represents the data grouping.

6. The method as recited in claim 1 , further comprising creating a metadata tree that represents the data grouping, the metadata tree including data segments of the data grouping and also including metadata embraced by the metadata ranges.

7. The method as recited in claim 1 , further comprising creating a unique reference for each data segment in the data grouping, wherein the unique references collectively comprise the metadata.

8. The method as recited in claim 1 , wherein the requested I/O operations comprise a backup operation and/or a restore operation.

9. The method as recited in claim 1 , wherein the requested I/O operations include a backup operation, and data deduplication is performed as part of that backup operation.

10. The method as recited in claim 1 , further comprising caching the metadata to SSD.

11. A non-transitory storage medium having stored therein computer-executable instructions which, when executed by one or more hardware processors, perform the following:

receiving a stream that identifies I/O operations requested to be performed with respect to a data grouping;

identifying, in the stream, random I/O requests and sequential I/O requests;

queuing the sequential I/O requests in a priority/processing queue and processing the sequential I/O requests immediately without waiting for loading of any metadata;

defining a metadata load queue by assigning each of the random I/O requests to a respective range of metadata;

loading the metadata of each range;

re-queuing the random I/O requests;

using the loaded metadata, performing a random I/O operation that corresponds to one of the random I/O requests; and

performing the random I/O operation and a sequential I/O operation concurrently with each other.

12. The non-transitory storage medium as recited in claim 11 , wherein each metadata range corresponds to a respective set of one or more data segments.

13. The non-transitory storage medium as recited in claim 11 , wherein the metadata and the data segments are stored in different respective types of storage.

14. The non-transitory storage medium as recited in claim 11 , wherein the random I/O requests are re-queued in the priority/processing queue in the same order, relative to each other, in which they were initially received as part of the stream.

15. The non-transitory storage medium as recited in claim 11 , wherein metadata included in the metadata ranges comprises part of a metadata tree that represents the data grouping.

16. The non-transitory storage medium as recited in claim 11 , wherein the processes further comprise creating a metadata tree that represents the data grouping, the metadata tree including data segments of the data grouping and also including metadata embraced by the metadata ranges.

17. The non-transitory storage medium as recited in claim 11 , wherein the processes further comprise creating a unique reference for each data segment in the data grouping, wherein the unique references collectively comprise the metadata.

18. The non-transitory storage medium as recited in claim 11 , wherein the requested I/O operations include a backup operation, and data deduplication is performed as part of that backup operation.

19. The non-transitory storage medium as recited in claim 11 , wherein the processes further comprise caching the metadata to SSD.

20. A physical device, wherein the physical device comprises:

one or more hardware processors; and

the non-transitory storage medium as recited in claim 11 .

Assignments (10)
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 (050724/0466) Recorded Jun 23, 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (042769/0001) Recorded Apr 26, 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 (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
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 INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2017
From: SUBRAMANIAN, BALAJI; ALLU, YAMINI; YALLAPRAGADA, SRISAILENDRA; KAIPA, SIRISHA; KULKARNI, VRUSHALI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 042162/0795 →