US 11,921,593 B2
Multi-phase file recovery from cloud environments
Abdullah Reza, Gilroy, CA (US); and Vijay Karthik, Sunnyvale, CA (US)
Assigned to Rubrik, Inc., Palo Alto, CA (US)
Filed by Rubrik, Inc., Palo Alto, CA (US)
Filed on Apr. 27, 2022, as Appl. No. 17/731,073.
Prior Publication US 2023/0350767 A1, Nov. 2, 2023
Int. Cl. G06F 11/14 (2006.01); G06F 16/11 (2019.01)
CPC G06F 11/1469 (2013.01) [G06F 11/1464 (2013.01); G06F 16/128 (2019.01); G06F 2201/84 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method, comprising:
receiving, by a data management system via an interface of the data management system, a request to read one or more files of a filesystem, wherein data of the filesystem is stored across a plurality of sparse files in a cloud environment, the plurality of sparse files comprising respective sets of data blocks;
accessing memory of the data management system, by the data management system and in response to the request to read the one or more files, to retrieve metadata entries from a metadata table stored in the memory of the data management system, wherein the metadata entries are indexed by the one or more files included in the request and the metadata entries comprise one or more target logical address ranges corresponding to the one or more files of the filesystem;
reading, by the data management system and from the cloud environment via a network interface, index information for the plurality of sparse files, wherein the index information indicates respective logical address ranges for data blocks within the plurality of sparse files;
storing, by the data management system in the memory of the data management system and based at least in part on reading the index information, one or more pointers to logical address ranges corresponding to one or more data blocks within one or more sparse files of the plurality of sparse files, wherein storing the one or more pointers is based at least in part on the logical address ranges pointed to by the one or more pointers overlapping with the one or more target logical address ranges corresponding to the one or more files of the filesystem;
transmitting, from the data management system to the cloud environment and via the network interface, one or more read requests for the one or more data blocks, within the one or more sparse files, that are pointed to by the one or more pointers, wherein the one or more read requests are generated based at least in part on the one or more pointers to the logical address ranges that overlap with the one or more target logical address ranges; and
receiving, at the data management system from the cloud environment and via the network interface, the requested one or more data blocks based at least in part on the one or more read requests.