IP Library Granted Patent US 10,061,520
Granted Patent B1
US 10,061,520 · App. 15/189,447 · Granted Aug 28, 2018

Accelerated data access operations

Inventors: Junping Zhao (Beijing, CN); Kenneth J. Taylor (Franklin, MA); Randall Shain (Wrentham, MA); Adrian Michaud (Carlisle, MA); Stephen Wing-Kin Au (Norwood, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0611G06F3/064G06F3/0673
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,061,520
App. No.
15/189,447
Granted
Aug 28, 2018
Kind
B1
Abstract

Systems and methods are provided for implementing accelerated data access operations. For example, a method for accessing data includes loading an image into a memory, wherein the image comprises a plurality of image layers, and wherein each image layer references one or more data blocks. A request is received for a target data block from an active process operating on the image. Data structures associated with the target data bock are then accessed, wherein the data structures comprise metadata of a previous lookup path that was performed across one or more of the image layers of the image to access the target data block. The metadata of the data structures is utilized to access an existing in-memory copy of the target data block without having to traverse the previous lookup path, and the in-memory copy of target data block is returned to the active process.

Claims (49)

1. A method, comprising:

loading an image into main memory of a computing system, the image comprising a plurality of image layers, wherein the plurality of image layers comprises a base image layer which references a plurality of data blocks, and at least one additional image layer which references a modified version of at least one data block referenced in the base image layer;

receiving a request for a target data block referenced by a given image layer of the image from a first process operating on the image;

accessing data structures associated with the target data bock, wherein the data structures comprise metadata of a previous lookup path that was previously traversed by a second process across one or more of the image layers of the image to access the target data block and to store a copy of the target data block in the main memory;

utilizing the metadata of the data structures to access the copy of the target data block in the main memory without having to traverse the previous lookup path across the one or more image layers of the image to access the target data block; and

returning the copy of the target data block to the first process.

2. The method of claim 1 , wherein the first process operating on the image comprises an active container instance comprising a read/write container layer mounted on one of the image layers of the image.

3. The method of claim 1 , wherein the data structures provide multiple image layer references to the copy of the target data block in the main memory.

4. The method of claim 1 , wherein the data structures comprise a first data structure and a second data structure;

wherein the first data structure comprises an identifier of an image layer included in the previous lookup path, and a pointer to the second data structure; and

wherein the second data structure comprises a pointer to the copy of the target data block in the main memory, and an identifier of the image layer of the image which owns the target data block.

5. The method of claim 4 , wherein the second data structure further comprises a count of a number of first data structures that reference the second data structure.

6. The method of claim 1 , wherein utilizing the metadata of the data structures to access the copy of the target data block in the main memory without having to traverse the previous lookup path comprises utilizing the metadata of the data structures to directly access the copy of the target data block in the main memory without having to traverse any of the image layers of the image.

7. The method of claim 1 , wherein utilizing the metadata of the data structures to access the copy of the target data block in the main memory without having to traverse the previous lookup path comprises:

traversing at least one image layer of the image along a current lookup path determined from a hierarchical data structure that represents the image to find the target data block, wherein the current lookup path comprises the previous lookup path; and

utilizing the metadata of the data structures to access the copy of the target data block in the main memory without traversing the previous lookup path when the target data block is not found by traversing the at least one image layer of the image along the current lookup path.

8. An article of manufacture comprising a processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code is executable by one or more processors to implement a method comprising:

loading an image into main memory of a computing system, the image comprising a plurality of image layers, wherein the plurality of image layers comprises a base image layer which references a plurality of data blocks, and at least one additional image layer which references a modified version of at least one data block referenced in the base image layer;

receiving a request for a target data block referenced by a given image layer of the image from a first process operating on the image;

accessing data structures associated with the target data bock, wherein the data structures comprise metadata of a previous lookup path that was previously traversed by a second process across one or more of the image layers of the image to access the target data block and to store a copy of the target data block in the main memory;

utilizing the metadata of the data structures to access the copy of the target data block in the main memory without having to traverse the previous lookup path across the one or more image layers of the image to access the target data block; and

returning the copy of the target data block to the first process.

9. The article of manufacture of claim 8 , wherein the first process operating on the image comprises an active container instance comprising a read/write container layer mounted on one of the image layers of the image.

10. The article of manufacture of claim 8 , wherein the data structures provide multiple image layer references to the copy of the target data block in the main memory.

11. The article of manufacture of claim 8 , wherein the data structures comprise a first data structure and a second data structure;

wherein the first data structure comprises an identifier of an image layer included in the previous lookup path, and a pointer to the second data structure; and

wherein the second data structure comprises a pointer to the copy of the target data block in the main memory, and an identifier of the image layer of the image which owns the target data block.

12. The article of manufacture of claim 11 , wherein the second data structure further comprises a count of a number of first data structures that reference the second data structure.

13. The article of manufacture of claim 8 , wherein utilizing the metadata of the data structures to access the copy of the target data block in the main memory without having to traverse the previous lookup path comprises utilizing the metadata of the data structures to directly access the copy of the target data block in the main memory without having to traverse any of the image layers of the image.

14. The article of manufacture of claim 8 , wherein utilizing the metadata of the data structures to access the copy of the target data block in the main memory without having to traverse the previous lookup path comprises:

traversing at least one image layer of the image along a current lookup path determined from a hierarchical data structure that represents the image to find the target data block, wherein the current lookup path comprises the previous lookup path; and

utilizing the metadata of the data structures to access the copy of the target data block in the main memory without traversing the previous lookup path when the target data block is not found by traversing the at least one image layer of the image along the current lookup path.

15. A system, comprising:

at least one processor; and

memory configured to store program code, wherein the program code is executable by the at least one processor to:

load an image into main memory of a computing system, the image comprising a plurality of image layers, wherein the plurality of image layers comprises a base image layer which references a plurality of data blocks, and at least one additional image layer which references a modified version of at least one data block referenced in the base image layer;

receive a request for a target data block referenced by a given image layer of the image from a first process operating on the image;

access data structures associated with the target data bock, wherein the data structures comprise metadata of a previous lookup path that was previously traversed by a second process across one or more of the image layers of the image to access the target data block and to store a copy of the target data block in the main memory;

utilize the metadata of the data structures to access the copy of the target data block in the main memory without having to traverse the previous lookup path across the one or more image layers of the image to access the target data block; and

return the copy of the target data block to the first process.

16. The system of claim 15 , wherein the first process operating on the image comprises an active container instance comprising a read/write container layer mounted on one of the image layers of the image.

17. The apparatus of claim 15 , wherein the data structures provide multiple image layer references to the copy of the target data block in the main memory.

18. The system of claim 15 , wherein the data structures comprise a first data structure and a second data structure;

wherein the first data structure comprises an identifier of an image layer included in the previous lookup path, and a pointer to the second data structure; and

wherein the second data structure comprises a pointer to the copy of the target data block in the main memory, an identifier of the image layer of the image which owns the target data block, and a count of a number of first data structures that reference the second data structure.

19. The system of claim 15 , wherein utilizing the metadata of the data structures to access the copy of the target data block in the main memory without having to traverse the previous lookup path comprises utilizing the metadata of the data structures to directly access the copy of the target data block in the main memory without having to traverse any of the image layers of the image.

20. The system of claim 15 , wherein utilizing the metadata of the data structures to access the copy of the target data block in the main memory without having to traverse the previous lookup path comprises:

traversing at least one image layer of the image along a current lookup path determined from a hierarchical data structure that represents the image to find the target data block, wherein the current lookup path comprises the previous lookup path; and

utilizing the metadata of the data structures to access the copy of the target data block in the main memory without traversing the previous lookup path when the target data block is not found by traversing the at least one image layer of the image along the current lookup path.

Assignments (6)
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2018
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046495/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2016
From: TAYLOR, KENNETH J.; SHAIN, RANDALL; AU, STEPHEN WING-KIN
To: EMC CORPORATION
Reel/Frame 040440/0133 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2016
From: ZHAO, JUNPING; MICHAUD, ADRIAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040440/0170 →
Cited By (1)
US 12,681,751