US 12,450,123 B2
Snapshot copy operation to copy a snapshot from source endpoint to destination endpoint
Tijin George, Sunnyvale, CA (US); Sharankumar Yelheri, Santa Clara, CA (US); Sanhita Praveen Dhavale, San Jose, CA (US); Chuyi Wei, San Jose, CA (US); and Ricardo Sanchez Aguilera, San Francisco, CA (US)
Assigned to NetApp, Inc., San Jose, CA (US)
Filed by NetApp Inc., San Jose, CA (US)
Filed on Apr. 28, 2022, as Appl. No. 17/731,745.
Claims priority of provisional application 63/273,467, filed on Oct. 29, 2021.
Prior Publication US 2023/0133533 A1, May 4, 2023
Int. Cl. G06F 16/00 (2019.01); G06F 7/00 (2006.01); G06F 11/14 (2006.01); G06F 16/11 (2019.01)
CPC G06F 11/1451 (2013.01) [G06F 11/1464 (2013.01); G06F 16/128 (2019.01); G06F 2201/84 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
storing snapshot data of snapshots into objects at a source endpoint within an object store of a cloud computing environment, wherein snapshot data of a snapshot is stored across a plurality of the objects, and wherein an object stores snapshot data shared by the snapshot and one or more neighboring snapshots of the snapshot;
creating a metadata object at a destination endpoint of the object store for a snapshot to copy from the source endpoint to the destination endpoint, wherein the metadata object comprises indicators set to indicate which of the objects comprise the snapshot data of the snapshot;
identifying a previous neighboring snapshot and a next neighboring snapshot, wherein objects at the destination endpoint store snapshot data of the previous neighboring snapshot and snapshot data of the next neighboring snapshot;
performing a difference operation upon the metadata object of the snapshot and metadata objects of the previous neighboring snapshot and the next neighboring snapshot to identify one or more objects, at the source endpoint, comprising snapshot data of the snapshot not already stored at the destination endpoint; and
transferring the one or more objects from the source endpoint to the destination endpoint to create the snapshot at the destination endpoint, wherein a tracking object is created to track a transfer of the one or more objects and is populated with information derived from both the previous neighboring snapshot and the next neighboring snapshot, and wherein the information is verified to determine a starting point of the transfer.