×

Replicating data in a data storage system

  • US 10,303,360 B2
  • Filed: 09/30/2015
  • Issued: 05/28/2019
  • Est. Priority Date: 09/30/2015
  • Status: Active Grant
First Claim
Patent Images

1. A computer-implemented method of replicating data in a data storage system, wherein the data storage system comprises at least:

  • a first data storage device comprising a set of data regions;

    a second data storage device comprising a set of data regions corresponding to the set of data regions of the first data storage device; and

    a first host device in communication with the first data storage device and a second host device in communication with the second data storage device;

    wherein the method comprises the steps of;

    the first data storage device receiving a first write request from the first host device to update a first subset of the data regions;

    the first data storage device updating data regions that are in the first subset in accordance with the first write request;

    the first data storage device sending the first write request to the second data storage device;

    the second data storage device receiving a second write request to update a second subset of the data regions from the second host device prior to receiving the first write request;

    the second data storage device updating data regions that are in the second subset in accordance with the second write request;

    the second data storage device receiving the first write request;

    the second data storage device updating data regions that are in the first subset in accordance with the first write request;

    the second data storage device sending a notification to the first data storage device indicating that the second data storage device has been updated in accordance with the first write request and a collision mask indicating the regions of the second write request overwritten by the first write request;

    based on the received collision mask, the first data storage device determining that the first data storage device has not received the second write request;

    based on the first data storage device being selected as a leader in the case of a collision between the first write request and the second write request, the first data storage device updating the first subset in accordance with the first write request;

    the first data storage device sending a notification to the second data storage device indicating that the first data storage device has been updated in accordance with the first write request and sending a first flush message;

    based on receiving the flush message, the second data storage device waiting for a notification indicating that the first data storage device has applied the second write request;

    based on receiving the notification indicating that the first data storage device has applied the second write request, the second data storage device sending a second flush message to the first data storage device;

    the first data storage device receiving the second write request from the second data storage device;

    based on receiving the second flush message and the first data storage device being selected as the leader, the first data storage device updating only data regions that are in the second subset but not in the first subset in accordance with the second write request; and

    the first data storage device sending a third flush message to the second data storage device.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×