Patent ID: 9575978
Date: 2017-02-21
CPC Classifications: G06F

Claim:
1. A computer program product for communicating with a server recovery agent to recover objects in a server storage and communicate with a client storage, comprising a non-transitory computer readable storage medium having computer readable program code embodied therein to execute to perform operations, the operations comprising: generating unique client chunk identifiers calculated by processing chunks of data in data objects stored in the client storage, wherein each of the client chunk identifiers identifies one of the chunks of data in the client storage; adding an entry to a client chunk index for each generated client chunk identifier, wherein each client chunk index entry includes one of the client chunk identifiers and a reference to a chunk of data in the client storage from which the client chunk identifier was calculated; transmitting to a server recovery agent a request to recover an object; receiving, from the server recovery agent, server chunk identifiers of chunks of data in the object at the server storage to recover; determining from the client chunk index whether the received server chunk identifiers of chunks of data in the object to recover match the client chunk identifiers indicated in the client chunk index; requesting the chunks of data in the object from the server recovery agent for the received server chunk identifiers not matching the client chunk identifiers in the client chunk index; calculating a current client chunk identifier from a copy of a chunk of data in the client storage identified by the client chunk identifier matching one of the received server chunk identifiers; and requesting, from the server recovery agent, each of at least one of the chunks of data in the object at the server storage for each of the received server chunk identifiers not matching the current client chunk identifier calculated for the chunk of data identified by the client chunk identifier matching the server chunk identifier; and in response to one of the received server chunk identifiers matching the client chunk identifiers in the client chunk index, using the reference in the client chunk index entry having the matching client chunk identifier to access the chunk of data from the client storage.