×

System and method for the merging of databases

  • US 9,043,278 B1
  • Filed: 04/14/2014
  • Issued: 05/26/2015
  • Est. Priority Date: 05/09/2012
  • Status: Active Grant
First Claim
Patent Images

1. A system for merging two databases with one another, the system comprising:

  • first, second, and third computing devices having respective first, second, and third databases stored thereon, the first, second, and third databases each comprising one or more records, each of the one or more records having a unique identifier and timestamp associated therewith, the first, second, and third computing devices being operatively connected to one another by a network connection in a peer-to-peer manner without using a central master server, each of the first, second, and third computing devices being peers with respect to one another such that syncing occurs between the first computing device and the second computing device, syncing occurs between the first computing device and the third computing device, and syncing occurs between the second computing device and the third computing device;

    the first computing device being specially programmed to;

    prior to determining whether it is already syncing with the second computing device, send an initial command to the second computing device;

    when the second computing device responds to the initial command sent by the first computing device, receive at least the following;

    (i) a unique identifier of the second computing device, (ii) a maximum data block size that the second computing device is capable of receiving as one payload, and (iii) a last time the second computing device communicated with the first computing device;

    determine whether it is already syncing with the second computing device;

    when it is determined that the first computing device is already syncing with the second computing device, communications between the first computing device and the second computing device are ended;

    when it is determined that the first computing device is not already syncing with the second computing device, generate a first filtered listing of the one or more unique identifiers and timestamps associated with the one or more records in the first database by using a timestamp filter, the timestamp filter comprising a first last-seen timestamp value which is indicative of the last time the first computing device communicated with the second computing device, the first last-seen timestamp value being specific to communications between the first computing device and the second computing device, wherein records having timestamps older than the first last-seen timestamp value are not included in the first filtered listing, the timestamp filter further comprising a second last-seen timestamp value that is specific to communications between the first computing device and the third computing device;

    send the first filtered listing of one or more unique identifiers and timestamps from the first computing device to the second computing device;

    the second computing device being specially programmed to;

    generate a second filtered listing of one or more unique identifiers and timestamps associated with the one or more records in the second database using the first last-seen timestamp value sent to the second computing device from the first computing device;

    compare the first filtered listing of the one or more unique identifiers and timestamps associated with the one or more records in the first database to the second filtered listing of one or more unique identifiers and timestamps associated with the one or more records in the second database;

    determine whether each of the one or more unique identifiers in the first filtered listing exists in the second filtered listing, and whether each of the one or more unique identifiers in the second filtered listing exists in the first filtered listing;

    when it is determined that one or more unique identifiers in the first filtered listing do not exist in the second filtered listing, add one or more records associated with the one or more unique identifiers that do not exist to a record request list;

    when it is determined that one or more unique identifiers in the first filtered listing also exist in the second filtered listing, further determine, a most recent version of one or more records associated with the one or more unique identifiers existing in both listings by comparing one or more timestamps in the first filtered listing to one or more timestamps of one or more corresponding records in the second filtered listing;

    when it is determined that one or more records in the first filtered listing have a more recent timestamp than one or more corresponding records in the second filtered listing with matching unique identifiers, adding the one or more records having more recent timestamps to the record request list;

    when it is determined that one or more records in the second filtered listing have a more recent timestamp than one or more corresponding records in the first filtered listing with matching unique identifiers, add the one or more records having more recent timestamps to a record send list;

    when it is determined that one or more unique identifiers in the second filtered listing do not exist in the first filtered listing, add one or more records associated with the one or more unique identifiers that do not exist to the record send list;

    transfer the record request list to the first computing device;

    copy the one or more records on the record send list into a second export queue of the second computing device; and

    the first computing device being further specially programmed to;

    copy the one or more records on the record request list into a first export queue of the first computing device.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×