| CPC G06F 3/0659 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0644 (2013.01); G06F 3/0647 (2013.01); G06F 3/0655 (2013.01); G06F 3/0689 (2013.01)] | 20 Claims |

|
1. A method for processing write conflicts, comprising:
determining, in response to receiving a write operation for a stripe, a state of a backend operation of a stripe set to which the stripe belongs, wherein the backend operation comprises one of a rebuilding operation and a re-striping operation;
stopping the write operation for the stripe in response to the state of the backend operation of the stripe set indicating that the backend operation is being executed in the stripe; and
executing the write operation for the stripe in response to the state of the backend operation of the stripe set indicating that the backend operation is not being executed in the stripe;
determining a state of a write operation of another stripe in response to receiving a backend operation for the other stripe;
stopping the backend operation for other stripe in response to the state of the write operation of the other stripe indicating that the write operation of the other stripe is being executed in the other stripe; and
executing the backend operation for the other stripe in response to the state of the other write operation of the other stripe indicating that the write operation of the other stripe is not being executed in the other stripe; and
wherein determining the state of the write operation of the other stripe comprises: determining, by querying a write operation count of the other stripe, whether the write operation of the other stripe is being executed in the other stripe, and the method further comprises:
adding the backend operation for the other stripe to a list of backend operations on a local node of the stripe set after it is determined that the write operation of the other stripe is being executed in the other stripe; and
updating a list of backend operations on a peer node, corresponding to the local node, of the stripe set in response to adding the backend operation for the other stripe to the list of backend operations on the local node of the stripe set; and
wherein the peer node of the stripe set is used to replace the local node in response to a failure of the local node of the stripe set.
|