US 11,917,005 B2
Clustered storage system synchronization
Yuedong Mu, San Jose, CA (US); Ching-Yuk P. Ngan, Redwood City, CA (US); and Manoj V. Sundararajan, Sunnyvale, CA (US)
Assigned to NetApp, Inc., San Jose, CA (US)
Filed by NetApp Inc., Sunnyvale, CA (US)
Filed on Oct. 17, 2018, as Appl. No. 16/162,850.
Application 16/162,850 is a continuation of application No. 14/472,943, filed on Aug. 29, 2014, abandoned.
Prior Publication US 2019/0052709 A1, Feb. 14, 2019
Int. Cl. H04L 67/1097 (2022.01)
CPC H04L 67/1097 (2013.01) 20 Claims
OG exemplary drawing
 
1. A method comprising:
maintaining a mapping table with mappings between trigger events and coordinate actions for a sync coordinator to execute in response to the trigger events occurring, wherein a mapping within the mapping table maps a trigger event of a replication error to program code integrated within the sync coordinator for performing a coordinate action to transition a set of nodes into an error state together;
in response to the sync coordinator receiving the trigger event comprising an error identifier indicating that replication of a consistency group from a first node to a second node failed, performing a lookup in the mapping table using the trigger event to identify the coordinate action to perform for the trigger event, wherein the mapping table indicates that the sync coordinator is to execute the program code to perform the coordinate action associated with the trigger event;
transmitting a request, for availability to perform the coordinate action, to the first node storing a first object of the consistency group and the second node storing a second object of the consistency group; and
in response to receiving replies to the request that the first node and the second node are capable of performing the coordinate action based upon the first node and the second node having no pending commands that conflict with the coordinate action:
queuing, prior to executing the coordinate action, received I/O commands pending for execution upon the consistency group and acknowledgement responses pending for transmission to clients for already executed I/O commands;
transmitting error messages instead of the acknowledgment responses to indicate that modifications, successfully committed to the consistency group by the already executed I/O commands successfully executed by the first node and successfully replicated to and executed by the second node, will be undone to preserve a write order dependency of I/O commands modifying the consistency group; and
instructing the first node and the second node to execute the coordinate action to transition into the error state based upon the first node and the second node having no pending commands that conflict with the coordinate action.