OVERLAPPING WRITE DETECTION AND PROCESSING FOR SYNC REPLICATION
First Claim
1. A method comprising:
- receiving, at a primary storage node, a primary write request that is to modify a primary portion of primary data stored in the primary storage node, wherein the primary write request is to be replicated to create a current secondary write request, wherein the current secondary write request is to modify a current secondary portion of secondary data that is stored in a secondary storage node, wherein the secondary data comprises a replication of the primary data;
determining a current data range of the current secondary portion;
determining whether a previous secondary write request, that has not yet completed updating the secondary storage node, is in process of modifying a previous data range that at least partially overlaps with the current data range; and
suspending execution of the primary write request, until the previous secondary write request has completed updating the secondary storage node.
1 Assignment
0 Petitions
Accused Products
Abstract
A primary write request that is to modify a primary portion of primary data stored in a primary storage node is received. The primary write request is to be replicated to create a current secondary write request. The current secondary write request is to modify a current secondary portion of secondary data that is stored in a secondary storage node. A current data range of the current secondary portion is determined. A determination is made of whether a previous secondary write request is in process of modifying a previous data range that at least partially overlaps with a current data range of the current secondary portion. Execution of the primary write request is suspended, until the previous secondary write request has completed updating the secondary storage node.
21 Citations
20 Claims
-
1. A method comprising:
-
receiving, at a primary storage node, a primary write request that is to modify a primary portion of primary data stored in the primary storage node, wherein the primary write request is to be replicated to create a current secondary write request, wherein the current secondary write request is to modify a current secondary portion of secondary data that is stored in a secondary storage node, wherein the secondary data comprises a replication of the primary data; determining a current data range of the current secondary portion; determining whether a previous secondary write request, that has not yet completed updating the secondary storage node, is in process of modifying a previous data range that at least partially overlaps with the current data range; and suspending execution of the primary write request, until the previous secondary write request has completed updating the secondary storage node. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions comprising program instructions to:
-
receive, at a primary storage node, a primary write request that is to modify a primary portion of primary data stored in the primary storage node, wherein the primary write request is to be replicated, external to a file system, to create a current secondary write request wherein the current secondary write request is to modify a current secondary portion of secondary data that is stored in a secondary storage node, wherein the secondary data comprises a replication of the primary data; determine a current data range of the current secondary portion; determine whether a previous secondary write request, that has not yet completed an update of the secondary storage node, is in process to modify a previous data range that at least partially overlaps with the current data range; and suspend execution of the primary write request, until the previous secondary write request has completed the update of the secondary storage node. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system comprising:
-
a primary storage node comprising, a primary processor; a primary storage configured to store primary data; and one or more primary computer readable storage media having primary program instructions embodied therewith, the primary program instructions executable by the primary processor to cause the primary storage node to, receive a primary write request to modify a primary portion of primary data that is stored in a primary storage node, wherein the primary write request is to be replicated external to a filesystem to create a current secondary write request, wherein the current secondary write request is to modify a current secondary portion of secondary data that is stored in a secondary storage node, wherein the secondary data comprises a replication of the primary data; and determine a current data range of the secondary portion based on the secondary write request; determine whether a previous secondary write request that has not yet completed an update of the secondary storage node is in process of an update to a previous data range that at least partially overlaps with the current data range; suspend execution of the primary write request, until at least the previous secondary write request has completed the update to the secondary storage node; replicate the primary write request to create the secondary write request for transmission; and transmit the secondary write request to the secondary storage node for execution; the secondary storage node comprising, a secondary processor; a secondary storage configured to store secondary data that comprises a replication of the primary data; and one or more secondary computer readable storage media having secondary program instructions embodied therewith, the secondary program instructions executable by the secondary processor to cause the secondary storage node to, receive the secondary write request; and update the secondary portion of the secondary data, in response to receipt of the secondary write request. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification