US 11,704,280 B2
Methods for replicating data and enabling instantaneous access to data and devices thereof
Jonathan Curley, Pittsburgh, PA (US); Srishylam Simharajan, Cranberry Township, PA (US); Devang Shah, San Jose, CA (US); and Richard Jernigan, Sewickely, PA (US)
Assigned to NetApp, Inc., San Jose, CA (US)
Filed by NetApp Inc., Sunnyvale, CA (US)
Filed on Sep. 21, 2017, as Appl. No. 15/711,451.
Application 15/711,451 is a continuation of application No. 14/522,820, filed on Oct. 24, 2014, granted, now 9,773,004.
Prior Publication US 2018/0011862 A1, Jan. 11, 2018
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/11 (2019.01); G06F 16/182 (2019.01); G06F 3/06 (2006.01)
CPC G06F 16/122 (2019.01) [G06F 3/0647 (2013.01); G06F 16/119 (2019.01); G06F 16/1844 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
identifying and replicating data extents with names of the data extents and references to the data extents in parallel from a first volume to a second volume;
determining that a reference and metadata are received before data content of a data extent of a file being replicated, wherein the reference corresponds to a name assigned to the data extent, and wherein the metadata specifies a file layout of the file, a size of the file, a format of the file, and a length of changed content of the file, wherein a storage management system performs data replication by sending the data extent once and subsequently refers to the replicated data extent at the second volume multiple times during subsequent data replication;
in response to the reference being received before the data content, performing an absent allocation for the data extent at the second volume to create absent allocated data within the second volume based upon the reference and the metadata such that clients are provided with I/O access to the file before receipt of the data content, wherein the absent allocation takes the metadata as parameters, and wherein the file layout within the metadata is used as a parameter for the absent allocation;
in response to receiving the data content of the data extent, filling the absent allocated data with the data content;
in response to receiving the data extents and the references in parallel, populating a data extent mapping that maps references of received data extents from the first volume to corresponding data contents of local data extents in the second volume; and
evaluating the data extent mapping to resolve names of data extents and to add data content of the data extends to files at locations where the data extents are referenced in the second volume as directed by the first volume.