Synchronization of snapshots in a distributed storage system
First Claim
1. A method, comprising:
- generating data, which belongs to a logical volume, in a source node;
preparing at the source node, write requests associated with the logical volume, for transmission from the source node to respective destination nodes, wherein the write requests include write requests for storing replicas of the same data directed to different destination nodes;
at the source node, marking the write requests with marks that indicate to which snapshot the write request relates;
sending the write requests with the markings to the respective destination nodes;
sending from the source node to the destination nodes, a request to create a snapshot of the data; and
at the destination nodes;
receiving the write requests;
distinguishing between pre-snapshot write requests and post-snapshot write requests based on the marks in the write requests, irrespective of an order-of-arrival of the write requests at the destination nodes;
individually in each of the destination nodes, executing only the pre-snapshot write requests; and
in each destination node, queuing post-snapshot write requests until arrival of a subsequent snapshot request.
4 Assignments
0 Petitions
Accused Products
Abstract
A method includes storing data generated in a source node by sending write requests to multiple destination nodes. The destination nodes are requested to create snapshots of the data. The write requests are marked at the source node with marks that indicate to each destination node which of the write requests are pre-snapshot write requests that were issued before a snapshot request for a snapshot that the destination node is currently storing, and which of the write requests are post-snapshot write requests that were issued after the snapshot request for the snapshot that the destination node is currently storing. The snapshots are synchronized with one another at the destination nodes based on the marks.
85 Citations
12 Claims
-
1. A method, comprising:
-
generating data, which belongs to a logical volume, in a source node; preparing at the source node, write requests associated with the logical volume, for transmission from the source node to respective destination nodes, wherein the write requests include write requests for storing replicas of the same data directed to different destination nodes; at the source node, marking the write requests with marks that indicate to which snapshot the write request relates; sending the write requests with the markings to the respective destination nodes; sending from the source node to the destination nodes, a request to create a snapshot of the data; and at the destination nodes; receiving the write requests; distinguishing between pre-snapshot write requests and post-snapshot write requests based on the marks in the write requests, irrespective of an order-of-arrival of the write requests at the destination nodes; individually in each of the destination nodes, executing only the pre-snapshot write requests; and in each destination node, queuing post-snapshot write requests until arrival of a subsequent snapshot request. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system, comprising at least a source node and multiple destination nodes,
wherein the source node is configured to generate data, which belongs to a logical volume, to prepare at the source node write requests associated with the logical volume, for transmission from the source node to respective destination nodes, wherein the write requests include write requests for storing replicas of the same data directed to different destination nodes, to mark the write requests with marks that indicate to which snapshot the write request relates, to send the write requests with the markings to the respective destination nodes, and to send from the source node to the destination nodes, a request to create a snapshot of the data; - and
wherein the destination nodes are configured to receive the write requests, to distinguish between the pre-snapshot write requests and the post-snapshot write requests based on the marks in the write requests, irrespective of an order-of-arrival of the write requests at the destination nodes, to execute only the pre-snapshot write requests, and to queue post-snapshot write requests until arrival of a subsequent snapshot request. - View Dependent Claims (7, 8, 9, 10)
- and
-
11. A computer software product, the product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, including instructions, when read by processors of a source node and multiple destination nodes that are interconnected by a communication network, cause a processor of the source node to generate data, which belongs to a logical volume, to send write requests associated with the logical volume, for transmission from the source node to respective destination nodes, wherein the write requests include write requests for storing replicas of the same data directed to different destination nodes, to mark the write requests at the source node with marks that indicate to which snapshot the write request relates, to send the write requests with the markings to the respective destination nodes, and to send from the source node to the destination nodes, a request to create a snapshot of the data;
- and
including instructions which when executed by processors of the destination nodes causes the destination nodes to receive the write requests, distinguish between pre-snapshot write requests and post-snapshot write requests based on the marks in the write requests, irrespective of an order-of-arrival of the write requests at the destination nodes, to execute only the pre-snapshot write requests, and to queue post-snapshot write requests until arrival of a subsequent snapshot request. - View Dependent Claims (12)
- and
Specification