Reconciliation in sync replication
First Claim
Patent Images
1. A method comprising:
- receiving, by a first node, a first request to write data to a first storage unit coupled to the first node;
performing a first write operation to the first storage unit;
replicating the first request to a second node as a replicated first request, wherein the replicated first request causes the second node to perform a second write operation to write the data to a second storage unit coupled to the second node;
performing a failure reconciliation based upon the first write operation failing, the failure reconciliation comprising;
reading old data from a location within the first storage unit targeted by the first write operation, wherein the old data was previously received by the first node from the second node; and
sending a reconciliation request, comprising the old data, to instruct the second node to overwrite the data, written to the second storage unit, using the old data;
receiving a second request to abort the first request;
performing a first abort operation on the first node based upon the second request;
forwarding the second request to the second node to invoke the second node to perform a second abort operation;
determining a combined response based upon a first result of the first write operation and a second result of the second write operation; and
performing a reconciliation operation in accordance with the combined response.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed storage system replicates data for a primary logical storage object on a primary node of the storage system to a secondary logical storage object on a secondary node on the distributed storage system. Failures in writing data to the primary logical storage object or failures in the replication of the data to the secondary logical storage object can cause data that should be synchronized to become divergent. In cases where the data may be divergent, reconciliation operations can be performed to resynchronize the data.
-
Citations
20 Claims
-
1. A method comprising:
-
receiving, by a first node, a first request to write data to a first storage unit coupled to the first node; performing a first write operation to the first storage unit; replicating the first request to a second node as a replicated first request, wherein the replicated first request causes the second node to perform a second write operation to write the data to a second storage unit coupled to the second node; performing a failure reconciliation based upon the first write operation failing, the failure reconciliation comprising; reading old data from a location within the first storage unit targeted by the first write operation, wherein the old data was previously received by the first node from the second node; and sending a reconciliation request, comprising the old data, to instruct the second node to overwrite the data, written to the second storage unit, using the old data; receiving a second request to abort the first request; performing a first abort operation on the first node based upon the second request; forwarding the second request to the second node to invoke the second node to perform a second abort operation; determining a combined response based upon a first result of the first write operation and a second result of the second write operation; and performing a reconciliation operation in accordance with the combined response. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory machine readable medium having stored thereon instructions for performing a method comprising program code which when executed by a machine, causes the machine to:
-
receive, by a first node, a first request to write data to a first storage unit coupled to the first node; perform a first write operation to the first storage unit; replicate the first request to a second node as a replicated first request, wherein the replicated first request causes the second node to perform a second write operation to write the data to a second storage unit coupled to the second node; receive, by the first node, a second request to abort the first request; perform a first abort operation on the first node based upon the second request; forward the second request to the second node to invoke the second node to perform a second abort operation; determine a combined response based upon results of the first abort operation and the second abort operation; and perform a reconciliation operation in accordance with the combined response. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A device comprising:
-
a memory containing machine readable medium comprising program code having stored thereon instructions for performing a method; and a processor coupled to the memory, the processor configured to execute the program code to cause the processor to; receive, by a first node, a first request to write data for a first logical storage object to a first storage unit coupled to the first node; perform a first write operation to a first location on the first storage unit; replicate the first request to a second node as a replicated first request, wherein the replicated first request causes the second node to perform a second write operation to write the data to a second location for a second logical storage object on a second storage unit coupled to the second node; perform a failure reconciliation based upon the first write operation failing, the failure reconciliation comprising; reading old data from a location within the first storage unit targeted by the first write operation, wherein the old data was previously received by the first node from the second node; and sending a reconciliation request, comprising the old data, to instruct the second node to overwrite the data, written to the second storage unit, using the old data; receive a second request to abort the first request; perform a first abort operation on the first node based upon the second request; forward the second request to the second node to invoke the second node to perform a second abort operation; determine a combined response based upon a first result of the first write operation and a second result of the second write operation; and perform a reconciliation operation in accordance with the combined response. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification