IP Library Granted Patent US 10,936,225
Granted Patent B1
US 10,936,225 · App. 14/934,954 · Granted Mar 2, 2021

Version history of files inside a backup

Inventors: Matthew James Eddey (Seattle, WA); John Sandeep Yuhan (Lynnwood, WA); Mahmood Miah (Seattle, WA); Abhishek Kumar (Buffalo, NY)
Assignee: AMAZON TECHNOLOGIES, INC.
G06F3/064G06F3/061G06F3/0629G06F3/0643G06F3/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,936,225
App. No.
14/934,954
Granted
Mar 2, 2021
Kind
B1
Abstract

A system includes a storage volume configured to store a data set in a plurality of data blocks, a data store configured to store a plurality of captures of the data set in a plurality of data chunks, and file retrieval logic. The data set includes a file stored in a data block of the plurality of data blocks. The plurality of captures includes the file captured at different points in time. The file retrieval logic is configured to identify the plurality of data chunks in which the data block as captured in the plurality of captures is stored in the data store, retrieve the plurality of data chunks from the data store, and read the data block as captured in the plurality of captures from the plurality of data chunks to produce a plurality of file versions.

Claims (47)

1. A method comprising:

receiving a file version request for a file of a plurality of files of a data set, the file associated with a data block of a plurality of data blocks of a storage volume and captured at different points in time in a plurality of captures stored in a first data store;

determining the data block of the plurality of data blocks associated with the file for the plurality of captures;

in response to a determination that the data block is associated with the file, identifying a plurality of data chunks in which the data block as captured in the plurality of captures is stored in the first data store utilizing a plurality of capture manifests, the capture manifests associated with one of the plurality of captures;

retrieving into a memory the plurality of data chunks;

reading the data block as captured by the plurality of captures from the plurality of data chunks stored in the memory to produce a plurality of file versions.

2. The method of claim 1 , further comprising, comparing a first file version of the plurality of file versions with a second file version of the plurality of file versions.

3. The method of claim 2 , further comprising, storing differences between the first file version and the second file version in a second data store accessible to a client.

4. The method of claim 3 , further comprising:

determining which of the plurality of captures the first and second file versions are stored; and

storing an identification of which of the plurality of captures the first and second file versions are stored in the second data store.

5. A system comprising:

a storage volume configured to store a data set in a plurality of data blocks, the data set including a file associated with a data block of the plurality of data blocks;

a first data store configured to store a plurality of captures of the data set in a plurality of data chunks, the plurality of captures including the file captured at different points in time; and

one or more processors configured to:

determine the data block associated with the file for the plurality of captures;

in response to a determination that the data block is associated with the file, identify the plurality of data chunks in which the data block as captured in the plurality of captures is stored in the first data store;

retrieve the plurality of data chunks from the first data store; and

read the data block as captured in the plurality of captures from the plurality of data chunks to produce a plurality of file versions.

6. The system of claim 5 , wherein the one or more processors is configured to identify the plurality of data chunks using a plurality of capture manifests.

7. The system of claim 6 , wherein the plurality of capture manifests comprises a table that maps data blocks of the plurality of data blocks captured in one of the plurality of captures to a corresponding data chunk stored in the first data store.

8. The system of claim 5 , wherein the one or more processors includes a memory configured to store the retrieved data chunks.

9. The system of claim 8 , wherein the one or more processors is configured to extract the data block from the captures.

10. The system of claim 9 , wherein the one or more processors is further configured to:

compare a first file version of the plurality of file versions with a second file version of the plurality of file versions; and

store differences between the first file version and the second file version in a second data store.

11. The system of claim 10 , wherein the stored differences between the first file version and the second file version includes changes from the first file version to the second file version.

12. The system of claim 10 , wherein the stored differences between the first file version and the second file version includes a listing of which of the plurality of captures the first and second file version are extracted.

13. The system of claim 10 , wherein the stored differences between the first file version and the second file version includes the first file version and the second file version.

14. The system of claim 10 , wherein the one or more processors compares the first file version of the plurality of file versions with the second file version of the plurality of file versions while the data blocks stored in the data chunks are streamed through the memory.

15. A method comprising:

storing a data set in a plurality of data blocks in a storage volume, the data set including a file associated with a first data block of the plurality of data blocks;

storing a plurality of captures of the data set in a plurality of data chunks in a first data store, the plurality of captures including the file captured at different points in time;

determining the data block associated with the file for the plurality of captures,

in response to a determination that the data block is associated with the file, identifying the plurality of data chunks in which the first data block as captured in the plurality of captures is stored in the first data store;

retrieving into a memory the plurality of data chunks; and

reading the first data block from the plurality of data chunks stored in the memory to produce a plurality of file versions, the plurality of file versions including the files in the plurality of captures.

16. The method of claim 15 , further comprising, assessing a plurality of capture manifests, the plurality of capture manifests comprising a table that maps a data block of the plurality of data blocks captured in one of the plurality of captures to a corresponding data chunk stored in the first data store to identify the plurality of data chunks.

17. The method of claim 15 , wherein the reading the first data block from the plurality of data chunks stored in the memory includes:

streaming data blocks stored in the plurality of data chunks through the memory; and

extracting the first data block from the plurality of data chunks.

18. The method of claim 17 , further comprising:

comparing a first file version of the plurality of file versions with a second file version of the plurality of file versions; and

storing differences between the first file version and the second file version.

19. The method of claim 18 , wherein storing the differences between the first file version and the second file version includes storing changes from the first file version to the second file version.

20. The method of claim 18 , wherein storing the differences between the first file version and the second file version includes storing a listing of the plurality of captures from which the first and second file version are extracted.

21. The method of claim 18 , wherein the comparing the first file version of the plurality of file versions with the second file version of the plurality of file versions occurs while streaming the data blocks stored in the plurality of data chunks through the memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2018
From: EDDEY, MATTHEW JAMES; YUHAN, JOHN SANDEEP; MIAH, MAHMOOD; KUMAR, ABHISHEK
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 045625/0600 →
Cited By (1)
US 12,282,766