Apparatus and a method to eliminate deadlock in a bi-directionally mirrored data storage system
First Claim
1. A computer-implemented method comprising:
- receiving data at a destination storage server from a source storage server;
temporarily holding the data in a replication queue at the destination storage server; and
sending an early write confirmation from the destination storage server to the source storage server if the source storage server is blocking further write operations due to not receiving a write confirmation for the data in the replication queue, wherein a write confirmation indicates data has been written to a destination volume and the early write confirmation is sent before the data in the replication queue is written to a destination volume.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and a method to eliminate deadlock in a bi-directionally mirrored data storage system are presented. In some embodiments, a first and a second storage servers have established a mirroring relationship. To prevent deadlock between the storage servers and to reduce write latency, the second storage server may hold data received from the first storage server in a replication queue and send an early confirmation to the first storage server before writing the data to a destination volume if the first storage server is held up due to a lack of confirmation. In another embodiment, when the first storage server writes metadata of a persistent point-in-time image (PPI) to the second storage server, the second storage server may send a confirmation to the first storage server after copying the metadata, but before exporting the PPI at the second storage server.
-
Citations
22 Claims
-
1. A computer-implemented method comprising:
-
receiving data at a destination storage server from a source storage server; temporarily holding the data in a replication queue at the destination storage server; and sending an early write confirmation from the destination storage server to the source storage server if the source storage server is blocking further write operations due to not receiving a write confirmation for the data in the replication queue, wherein a write confirmation indicates data has been written to a destination volume and the early write confirmation is sent before the data in the replication queue is written to a destination volume. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A machine-accessible medium that stores instructions which, if executed by a processor, will cause the processor to perform operations comprising:
-
writing, by a destination storage server, metadata of a persistent point-in-time image (PPI) of data in a source volume forwarded from a source storage server managing the source volume into a destination volume managed by the destination storage server synchronously with respect to a write operation performed on the source volume by the source storage server; exporting, by the destination storage server to a client, the persistent point-in-time image (PPI) of the data of the source volume from the destination storage server asynchronously with respect to the write operation; and sending an acknowledgement of the data from the destination storage server to the source storage server when the metadata has been written to the destination volume without waiting for the asynchronous exporting of the PPI to complete, wherein the source storage server is operable to perform subsequent write operations in response to receiving the acknowledgement instead of holding the subsequent write operations until the asynchronous exporting of the PPI is complete, the subsequent write operations being requested after the writing of the metadata has begun. - View Dependent Claims (8, 9, 10)
-
-
11. An apparatus comprising:
-
a buffer to hold a replication queue; and a write processing module to temporarily place a block of data received from a source storage server into the replication queue and to send an early acknowledgement of writing the block of data in the replication queue into a destination volume to the source storage server while writing a previously received block of data into the destination volume if the source storage server is blocking further write operations due to not receiving an acknowledgment of the writing of the date in the replication queue, wherein an acknowledgment indicates data has been written to a destination volume and the early acknowledgment is sent before the data in the replication queue is written to a destination volume. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
a first storage server to manage a first volume and to replicate data in the first volume to a destination volume; and a second storage server communicatively coupled to the first storage server to receive data from the first storage server and to manage the destination volume, the second storage server comprises a buffer to hold a replication queue, wherein the second storage server temporarily places a block of data received from the first storage server in the replication queue and sends an early write confirmation for the block of data to the first storage server while a previously received block of data from the first storage server is being written into the destination volume if the first storage server is blocking further write operations due to not receiving a write confirmation for the data in the replication queue, wherein a write confirmation indicates data has been written to a destination volume and the early write confirmation is sent before the data in the replication queue is written to a destination volume. - View Dependent Claims (18, 19)
-
-
20. A system comprising:
-
a source storage server to manage a source volume; a destination storage server communicatively coupled to the source storage server and a destination volume, the destination storage server operable to write data of the source volume into the destination volume synchronously with respect to write operations performed on the source volume, and the destination storage server further operable to send an acknowledgement of the data to the source storage server when the data has been written to the destination volume without waiting for a persistent point-in-time image (PPI) of the data of the source volume to be exported by the destination storage server to a client, wherein the source storage server is operable to perform subsequent write operations in response to receiving the acknowledgement instead of holding the subsequent write operations until the exporting of the PPI is complete, the subsequent write operations being requested after the writing of the data has begun. - View Dependent Claims (21, 22)
-
Specification