US 12,216,549 B2
Cloud-based processing of backup data for storage onto various types of object storage systems
Sunil Yadav, Bangalore (IN); Shelesh Chopra, Bangalore (IN); Amarendra Behera, Bangalore (IN); Himanshu Arora, Bangalore (IN); Tushar Dethe, Bangalore (IN); Ravi Vijayakumar Chitloor, Bengaluru (IN); Prabhatkumar Dubey, Huskuru (IN); Deependra Singh, Kanpur (IN); and Jigar Bhanushali, Kanpur (IN)
Assigned to EMC IP Holding Company LLC, Hopkinton, MA (US)
Filed by EMC IP Holding Company LLC, Hopkinton, MA (US)
Filed on Oct. 23, 2020, as Appl. No. 17/078,853.
Prior Publication US 2022/0129352 A1, Apr. 28, 2022
Int. Cl. G06F 11/14 (2006.01); G06F 16/174 (2019.01); G06F 16/18 (2019.01); G06F 16/182 (2019.01); H04L 67/06 (2022.01); H04L 67/56 (2022.01)
CPC G06F 11/1464 (2013.01) [G06F 11/1451 (2013.01); G06F 11/1461 (2013.01); G06F 11/1469 (2013.01); G06F 16/1748 (2019.01); G06F 16/1824 (2019.01); G06F 16/1858 (2019.01); H04L 67/06 (2013.01); H04L 67/56 (2022.05)] 20 Claims
OG exemplary drawing
 
1. A system comprising:
one or more processors; and
a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:
receive, at a proxy server and from a client device accessing a first application programming interface (API) provided by the proxy server, a first file and identification of a first object storage as part of a client request to back up the first file to the first object storage, the first API including a set of agnostic functions to perform data-related operations on a plurality of object storages;
determine, by the proxy server, a first set of functions for performing the backup of the first file on the first object storage from a library of functions accessible by the proxy server based on the identification of the first object storage in the client request, the library of functions being a collection of the first set of functions and a second set of functions used for backup operations for a plurality of object storages, comprising the first object storage provided by a first third-party cloud-based storage provider and a second object storage provided by a second third-party cloud-based storage provider, stored in a common location, each function in the first set of functions being a specific operation associated with the first object storage and configured to access a second API provided by the first object storage, each function in the second set of functions being a specific operation associated with the second object storage and configured to access a third API provided by the second object storage;
initiate a backup processing of the first file by the proxy server in response to determining the first set of functions from the library by partitioning the first file into one or more chunks;
deduplicate the chunks of the first file by determining which of the chunks are already stored on the first object storage by accessing an index maintained by the proxy server and without accessing the client device as part of the back up processing of the first file performed by the proxy server, in response to partitioning the first file into one or more chunks;
transfer, by the proxy server using the first set of functions, the deduplicated chunks of the first file to the first object storage as part of the back up processing of the first file performed by the proxy server; and
validate, by the proxy server, the transferred chunks of the first file using a validation operation to compare the deduplicated chunks of the first file before and after the transmission, the validation operation being included in the first set of functions retrieved from the library of functions.