IP Library › Granted Patent US 12,321,314
Granted Patent B2
US 12,321,314 · App. 18/397,747 · Granted Jun 3, 2025

File-level snapshot access service

Inventors: Anil Gathala (San Jose, CA); Sandeep Kumar (Sammamish, WA); Kiran Shantaram Dalvi (Sunnyvale, CA); Chakravarthi Kalyana Valicherla (Redmond, WA); Shailendra Verma (Bellevue, WA); Adonijah Park (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F16/128G06F9/541G06F11/1451G06F16/172G06F2201/80G06F2201/84
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 12,321,314
App. No.
18/397,747
Granted
Jun 3, 2025
Kind
B2
Abstract

A file-level snapshot access service provides direct access to individual files included in a snapshot for virtual volume of a block-storage service without requiring a volume to be re-created from the snapshot, attached to a computing device, or mounted in a file system. For example, a user/client may directly retrieve individual files from specified snapshots via a user interface/API of the file-level snapshot access service. Additionally, the file-level snapshot access service is configured to provide a listing of files included in a given snapshot. In some embodiments, a file-level snapshot access service may provide direct access to individual files included in snapshots generated for other types of storage systems, such as an object-based storage system.

Claims (85)

1. A provider network, comprising:

a set of resource hosts configured to implement a snapshot archive; and

one or more computer systems configured to implement a file-level snapshot access service, wherein to implement the file-level snapshot access service, the one or more computer systems are configured to:

provide a file-level snapshot access application programmatic interface (API) configured to receive a request related to retrieving one or more files included in a snapshot stored in the snapshot archive; and

automatically perform, in response to receiving the request:

retrieving a sub-set of snapshot blocks from the snapshot stored in the snapshot archive, the sub-set of snapshot blocks comprising the one or more files;

identifying the one or more files included in the one or more snapshot blocks; and

returning, in response to the request related to retrieving the one or more files included in the snapshot, an indication the one or more files are identified.

2. The provider network of claim 1 , wherein:

the request is a request specifying a time range and one or more files to be queried in the specified time range.

3. The provider network of claim 2 , wherein:

in response to receiving the request specifying the time range and the one or more files to be queried in the specified time range, the one or more computer systems implementing the file-level snapshot access service automatically perform:

determining one or more snapshots within the specified time range;

issuing one or more API calls to the file-level snapshot access API specifying the one or more files and specifying the one or more determined snapshots; and

returning a list comprising one or more identified instances of the queried one or more files included in the determined snapshots.

4. The provider network of claim 3 , wherein in response to receiving the request specifying the time range and the one or more files to be queried in the specified time range, the one or more computer systems implementing the file-level snapshot access service further automatically perform:

providing a user-interface configured to receive a selection of a particular one or more instances of the one or more files from the list comprising the one or more identified instances of the queried one or more files included in the determined snapshots;

receiving, via the user-interface, the selection of the particular one or more instances of the one or more files from the list comprising the queried one or more files included in the determined snapshots; and

returning, in response to the selection, the selected particular one or more instances of the one or more files from the list comprising the queried one or more files included in the determined snapshots.

5. The provider network of claim 1 wherein:

the request is a request specifying an individual file to be queried; and

the one or more computer systems implementing the file-level snapshot access service are further configured to automatically perform in response to receiving the request specifying an individual file to be queried:

returning the one or more files.

6. The provider network of claim 1 , wherein:

the request is a request to list files included in the snapshot; and

the one or more computer systems implementing the file-level snapshot access service are further configured to automatically perform in response to receiving the request to list files included in the snapshot:

generating a list of files included in the snapshot; and

returning, in response to the request to list files included in the snapshot, the list of files included in the snapshot.

7. The provider network of claim 6 , wherein in response to receiving the request to list files included in the snapshot, the one or more computer systems configured to implement the file-level snapshot access service further automatically perform:

providing a user-interface configured to receive a selection of a particular one or more of the files from the list of files included in the snapshot;

receiving, via the user-interface, the selection of the particular one or more of the files from the list of files included in the snapshot; and

returning, in response to the selection, the selected particular one or more of the files from the list of files included in the snapshot.

8. A method, comprising:

providing an application programmatic interface (API) for a file-level snapshot access service, the API configured to receive a request related to retrieving one or more files included in a snapshot stored in a snapshot archive; and

automatically performing in response to receiving the request:

retrieving a sub-set of snapshot blocks of the snapshot from the snapshot archive;

identifying one or more instances of the one or more files included in the sub-set of snapshot blocks retrieved from the snapshot archive; and

returning, in response to the request, an indication that the one or more instances of the one or more files included in the sub-set of the snapshot blocks are identified.

9. The method of claim 8 , wherein the request is a request specifying a time range and one or more files to be queried in the specified time range.

10. The method of claim 9 , further comprising:

determining one or more snapshots within the specified time range;

issuing one or more API calls to the file-level snapshot access API specifying the one or more files and specifying the one or more determined snapshots; and

returning a list comprising one or more identified instances of the queried one or more files included in the determined snapshots.

11. The method of claim 10 , further comprising:

providing a user-interface configured to receive a selection of a particular one or more instances of the one or more files from the list comprising the one or more identified instances of the queried one or more files included in the determined snapshots;

receiving, via the user-interface, the selection of the particular one or more instances of the one or more files from the list comprising the queried one or more files included in the determined snapshots; and

returning, in response to the selection, the selected particular one or more instances of the one or more files from the list comprising the queried one or more files included in the determined snapshots.

12. The method of claim 8 , wherein the request is a request to retrieve one or more files from the snapshot, and further comprising:

returning, in response to the request to retrieve the one or more files from the snapshot, the one or more files.

13. The method of claim 8 , wherein the request is a request to list files included in the snapshot, and further comprising:

generating a list of files included in the snapshot; and

returning, in response to the request to list files included in the snapshot, the list of files included in the snapshot.

14. The method of claim 13 , further comprising:

providing a user-interface configured to receive a selection of a particular one or more of the files from the list of files included in the snapshot;

receiving, via the user-interface, the selection of the particular one or more of the files from the list of files included in the snapshot; and

returning, in response to the selection, the selected particular one or more of the files from the list of files included in the snapshot.

15. One or more non-transitory, computer-readable, media storing program instructions, that when executed on, or across, one or more computing devices, cause the one or more computing devices to:

provide an application programmatic interface (API) for a file-level snapshot access service, the API configured to receive a request related to retrieving one or more files included in a snapshot stored in a snapshot archive; and

automatically perform in response to receiving the request:

retrieving a sub-set of snapshot blocks of the snapshot from the snapshot archive;

identifying one or more instances of the one or more files included in the sub-set of snapshot blocks; and

returning an indication that the one or more instances of the one or more files included in the sub-set of snapshot blocks are identified.

16. The one or more non-transitory, computer readable, media of claim 15 , wherein:

the request is a request specifying a time range and one or more files to be queried in the specified time range; and

the program instructions, when executed on or across the one or more processors, further cause the one or more processors to:

determine one or more snapshots within the specified time range;

issue one or more API calls to the file-level snapshot access API specifying the one or more files and specifying the one or more determined snapshots; and

return a list comprising one or more identified instances of the queried one or more files included in the determined snapshots.

17. The one or more non-transitory, computer readable, media of claim 16 , wherein the program instructions, when executed on or across the one or more processors, further cause the one or more processors to:

provide a user-interface configured to receive a selection of a particular one or more instances of the one or more files from the list comprising the one or more identified instances of the queried one or more files included in the determined snapshots;

receive, via the user-interface, the selection of the particular one or more instances of the one or more files from the list comprising the queried one or more files included in the determined snapshots; and

return, in response to the selection, the selected particular one or more instances of the one or more files from the list comprising the queried one or more files included in the determined snapshots.

18. The one or more non-transitory, computer readable, media of claim 15 , wherein:

the request is a request to retrieve one or more files from the snapshot; and

the program instructions, when executed on or across the one or more processors, further cause the one or more processors to:

return, in response to the request to retrieve the one or more files from the snapshot, the one or more files.

19. The one or more non-transitory, computer-readable, media of claim 15 , wherein:

the request is a request to list files included in the snapshot; and

the program instructions, when executed on or across the one or more processors, further cause the one or more processors to:

generate a list of files included in the snapshot; and

return, in response to the request to list files included in the snapshot, the list of files included in the snapshot.

20. The one or more non-transitory, computer readable, media of claim 19 , wherein the program instructions, when executed on or across the one or more processors, further cause the one or more processors to:

provide a user-interface configured to receive a selection of a particular one or more of the files from the list of files included in the snapshot;

receive, via the user-interface, the selection of the particular one or more of the files from the list of files included in the snapshot; and

return, in response to the selection, the selected particular one or more of the files from the list of files included in the snapshot.

Continuity (2)
Continuation 17217957 · Mar 30, 2021
Related Publication 20240184745A1 · Jun 6, 2024
References Cited (37)
US 5815649A · Utter et al. · 1998 [cited by applicant]
US 7953947B2 · Akutsu et al. · 2011 [cited by applicant]
US 8307154B2 · Stabrawa et al. · 2012 [cited by applicant]
US 8321642B1 · Anzai et al. · 2012 [cited by applicant]
US 8595191B2 · Prahlad et al. · 2013 [cited by applicant]
US 8789208B1 · Sundaram et al. · 2014 [cited by applicant]
US 9275124B2 · Sundaram et al. · 2016 [cited by applicant]
US 9304867B2 · Sivasubramanian et al. · 2016 [cited by applicant]
US 9405483B1 · Wei et al. · 2016 [cited by applicant]
US 9792060B2 · Wei et al. · 2017 [cited by applicant]
US 9886213B2 · Sivasubramanian et al. · 2018 [cited by applicant]
US 9916321B2 · Sundaram et al. · 2018 [cited by applicant]
US 10452296B1 · Greenwood · 2019 [cited by applicant]
US 10481983B1 · Miah · 2019 [cited by examiner]
US 11336685B1 · Rodriguez · 2022 [cited by applicant]
US 11681443B1 · Venugopal · 2023 [cited by applicant]
US 20050216788A1 · Mani-Meitav · 2005 [cited by examiner]
US 20060155946A1 · Ji · 2006 [cited by applicant]
US 20100076932A1 · Lad · 2010 [cited by applicant]
US 20120054156A1 · Mason, Jr. · 2012 [cited by applicant]
US 20120079221A1 · Sivasubramanian et al. · 2012 [cited by applicant]
US 20120290802A1 · Wade et al. · 2012 [cited by applicant]
US 20130007389A1 · Patterson et al. · 2013 [cited by applicant]
US 20130166831A1 · Atkisson et al. · 2013 [cited by applicant]
US 20140330784A1 · Sundaram et al. · 2014 [cited by applicant]
US 20160004601A1 · Ahn · 2016 [cited by applicant]
US 20160070741A1 · Lin · 2016 [cited by applicant]
US 20160179839A1 · Sundaram et al. · 2016 [cited by applicant]
US 20160210342A1 · Vallabhaneni · 2016 [cited by applicant]
US 20160216896A1 · Sivasubramanian et al. · 2016 [cited by applicant]
US 20160328168A1 · Wei et al. · 2016 [cited by applicant]
US 20170147441A1 · Binford · 2017 [cited by applicant]
US 20180196827A1 · Sundaram · 2018 [cited by applicant]
US 20190163580A1 · Pandey · 2019 [cited by applicant]
US 20200218615A1 · Silk · 2020 [cited by applicant]
US 20210303405A1 · Slater · 2021 [cited by applicant]
U.S. Appl. No. 17/217,957, filed Mar. 30, 2021, Anil Gathal, et al. [cited by applicant]