发明名称 System and method for the merging of databases
摘要 A system and method for merging a first database with a second database (one-way merge), and a system and method for merging two databases with one another (two-way merge) is described herein. During the one-way merge, new or updated records are transferred from a copy of a client database to a server database after it is determined that the server database either does not contain one or more records in the copy of the client database or contains an older version of one or more records in the copy of the client database. During the two-way merge, new or updated records are transferred between a client database and a server database after it is determined that either the client database or the server database does not contain one or more records in the other database or contains an older version of one or more records in the other database.
申请公布号 US9043278(B1) 申请公布日期 2015.05.26
申请号 US201414252001 申请日期 2014.04.14
申请人 Bertec Corporation 发明人 Wilson Todd Christopher;Berme Necip
分类号 G06F17/30 主分类号 G06F17/30
代理机构 The Law Office of Patrick F. O'Reilly, III, LLC 代理人 The Law Office of Patrick F. O'Reilly, III, LLC
主权项 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.
地址 Columbus OH US