BACKGROUND

Many industries may be subject to strict requirements for how data is stored and maintained. For example, a regulatory agency or government agency may impose a data storage redundancy requirement upon financial institutions or other industries. The data storage redundancy requirement may specify that at least two copies of any transaction (transaction data) must be maintained at all times. Thus, a storage system must always maintain at least the two copies of all transactions at all times. This is achieved through replication, such as synchronous replication.

When a transaction (e.g., a write operation) to write data to a first data object (e.g., a volume, a file, a storage virtual machine comprising a plurality of volumes stored across one or more nodes) is received from a client device, the transaction is not acknowledged as complete unless the transaction is locally committed to the first data object and is successfully replicated to a second data object maintained as a replication of the first data object. If the replication transaction fails to be executed upon the second data object, then the transaction must be failed (e.g. blocked or undone) so that the transaction is not fully committed to the first data object. Otherwise, the first data object and the second data object would not comprise the data same, and at least two copies of the transaction would may not be maintained. This would violate the data storage redundancy requirement. Thus, there is a need to efficiently and successfully ensure that multiple copies of every transaction are maintained at all times.

