| CPC G06F 9/5022 (2013.01) [G06F 3/0619 (2013.01); G06F 3/065 (2013.01); G06F 3/067 (2013.01); G06F 11/0709 (2013.01); G06F 11/0727 (2013.01); G06F 11/0751 (2013.01); G06F 11/0793 (2013.01); G06F 2209/5014 (2013.01)] | 20 Claims |

|
1. An apparatus comprising:
at least one processing device comprising a processor coupled to a memory;
the at least one processing device being configured to implement a control module of a data path of a first storage system, the data path further comprising one or more data modules and one or more routing modules, wherein the control module, the one or more data modules and the one or more routing modules are configured to handle different stages of the data path of the first storage system, the control module being configured:
to maintain a synchronous replication input-output request list having a plurality of entries corresponding to respective synchronous replication input-output requests received at the control module from the one or more routing modules, a given such entry identifying (i) a given one of the one or more routing modules from which a given synchronous replication input-output request is received and (ii) one or more associated component resources to be released responsive to a failure of the given routing module;
to detect a failure of the given routing module;
to access the synchronous replication input-output request list to determine one or more associated component resources to be released, wherein the one or more associated component resources comprise at least one resource allocated by the control module for enabling communication between the control module and the given routing module;
to release the one or more associated component resources; and
to update the synchronous replication input-output request list by marking the one or more associated component resources as released;
wherein maintaining the synchronous replication input-output request list comprises:
receiving input-output requests; and
for each of the received input-output requests:
determining if the input-output request is a synchronous replication input-output request; and
responsive to the input-output request being a synchronous replication input-output request, creating a corresponding entry in the synchronous replication input-output request list;
wherein maintaining the synchronous replication input-output request list comprises:
periodically scanning through the entries of the synchronous replication input-output request list; and
for each of the entries of the synchronous replication input-output request list:
determining if the corresponding one of the one or more routing modules from which a corresponding one of the synchronous replication input-output requests was received has failed;
wherein responsive to an affirmative determination that the corresponding one of the one or more routing modules from which the corresponding one of the synchronous replication input-output requests was received has failed, its one or more associated component resources are released and the synchronous replication input-output request list is updated;
wherein multiple entries of the synchronous replication input-output request list are removed between successive iterations of the periodic scanning responsive to successful completion of synchronous replication of their respective corresponding input-output requests; and
wherein determining if the input-output request is a synchronous replication input-output request comprises determining whether or not the input-output request is generated in accordance with a synchronous replication process carried out between the first storage system and a second storage system.
|