US 12,086,035 B2
Recovery mechanism with selective ordering and concurrent operations
Parag Sarfare, San Jose, CA (US); Asif Pathan, San Jose, CA (US); Amit Borase, San Mateo, CA (US); Nikhil Mattankot, Pleasanton, CA (US); Sudheer Kumar Vavilapalli, Sunnyvale, CA (US); and Stephen Wu, Sacramento, CA (US)
Assigned to NetApp, Inc., San Jose, CA (US)
Filed by NetApp Inc., San Jose, CA (US)
Filed on Aug. 12, 2022, as Appl. No. 17/886,843.
Prior Publication US 2024/0054056 A1, Feb. 15, 2024
Int. Cl. G06F 11/00 (2006.01); G06F 11/14 (2006.01)
CPC G06F 11/1469 (2013.01) [G06F 11/1464 (2013.01); G06F 11/1471 (2013.01)] 21 Claims
OG exemplary drawing
 
1. A method, comprising:
logging I/O operations, received by a node of a distributed storage architecture, into log structures of persistent memory of the node for subsequently updating a distributed file system with metadata of the I/O operations and persisting data of the I/O operations to persistent storage of the distributed storage architecture; and
in response to the node recovering from a failure:
grouping a first set of log structures, of the log structures, into a first group and grouping a second set of log structures, of the log structures, into a second group based upon the first set of log structures having a first processing state and the second set of log structures having a second processing state;
determining a rebuild order based on processing states of the log structures, wherein a first set of in-memory representations are identified as being able to be rebuilt irrespective of the rebuild order based upon the first set of in-memory representations corresponding to the first group, and wherein a second set of in-memory representations are identified for being rebuilt according to the rebuild order based upon the second set of in-memory representations corresponding to the second group;
implementing a rebuild process to rebuild the first set of in-memory representations irrespective of the rebuild order and to rebuild the second set of in-memory representations according to the rebuild order; and
performing a replay operation using one or more of the first set of in-memory representations or the second set of in-memory representations rebuilt by the rebuild process to update the distributed file system with the metadata and persist the data to the persistent storage.