×

Flow for multi-master replication in distributed storage

  • US 9,864,791 B2
  • Filed: 03/04/2015
  • Issued: 01/09/2018
  • Est. Priority Date: 12/19/2014
  • Status: Active Grant
First Claim
Patent Images

1. One or more computer-storage media storing computer-executable instructions that, when executed by a computing device having a processor, cause the computing device to perform a method of replicating data in distributed storage, the method comprising:

  • retrieving a replication message from a message queue associated with a source table, the source table being one of a plurality of source tables in a replication group, the replication message comprising a row identifier;

    identifying one or more target storages within the replication group, the target storages including tables within the replication group;

    obtaining a table row corresponding to the row identifier and a first entity tag (eTag) for the table row from each of the one or more target storages, wherein an eTag comprises an identifier for a specific version of the table row, and wherein the obtaining comprises for each target storage;

    determining if a matching row corresponding to the row identifier exists in the target storage; and

    when a matching row exists in the target storage, returning the matching row and the first entity tag (eTag) corresponding to the matching row;

    determining whether at least one of the obtained rows has a later client timestamp than the table row corresponding to the row identifier from the source table;

    determining a winning row from the obtained rows based on a latest client timestamp of the obtained rows, the winning row being a table row with a latest version of the table row;

    creating replication operations based on the winning row, wherein a replication operation comprises instructions on inserting data from the winning row in to one or more target storages; and

    performing batch execution of the replication operations to the one or more target storages.

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