Sharing and Deconflicting Data Changes In A Multimaster Database System
First Claim
1. In a multimaster database system comprising a plurality of sites, a method for sharing and deconflicting data changes, the method comprising:
- making a change to a data object at a first site of the plurality of sites;
sharing the change to the data object at the first site with one or more other sites of the plurality of sites;
a computing device at a second site of the plurality of sites receiving an update reflecting the change to the data object at the first site;
wherein the update includes;
an identification of the data object,data reflecting the change to the data object at the first site, anda version of the data object at the first site;
the computing device obtaining a version of the data object at the second site; and
the computing device comparing the version of the data object at the first site to the version of the data object at the second site to determine whether the two versions are identical, ordered, or concurrent.
9 Assignments
0 Petitions
Accused Products
Abstract
A computer-based method and system for sharing and deconflicting data changes amongst a plurality of replication sites. In a particular embodiment, data changes at sites to data objects are tracked by each site on a per-data object basis using per-data object version vectors. In another particular embodiment, data changes at sites to links connecting two data objects are tracked by each site on a per-link set basis using per-link set version vectors. In another particular embodiment, per-object version vectors are used to detect a conflict resulting from concurrent changes at two or more sites in which one of the concurrent changes includes an object resolution change.
91 Citations
28 Claims
-
1. In a multimaster database system comprising a plurality of sites, a method for sharing and deconflicting data changes, the method comprising:
-
making a change to a data object at a first site of the plurality of sites; sharing the change to the data object at the first site with one or more other sites of the plurality of sites; a computing device at a second site of the plurality of sites receiving an update reflecting the change to the data object at the first site; wherein the update includes; an identification of the data object, data reflecting the change to the data object at the first site, and a version of the data object at the first site; the computing device obtaining a version of the data object at the second site; and the computing device comparing the version of the data object at the first site to the version of the data object at the second site to determine whether the two versions are identical, ordered, or concurrent. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
11. In a multimaster database system comprising a plurality of sites, a method for sharing and deconflicting data changes, the method comprising:
-
making a change at a first site of the plurality of sites to a set of one or more links connecting two data objects; sharing the change with one or more other sites of the plurality of sites; a computing device at a second site of the plurality of sites receiving an update reflecting the change to the set of links at the first site; wherein the update includes; an identification of the set of links, data reflecting the change to the set of links at the first site, and a version of the set of links at the first site; the computing device obtaining a version of the set of links at the second site; and the computing device comparing the version of the set of links at the first site to the version of the set of links at the second site to determine whether the two versions are identical, ordered, or concurrent. - View Dependent Claims (12, 13, 25, 26, 27)
-
-
14. In a multimaster database system comprising a plurality of sites, a method for sharing and deconflicting data changes, the method comprising:
-
a first computing device at a first site of the plurality of sites resolving two or more data objects together; sharing the resolution change with one or more other sites of the plurality of sites; a second computing device receiving an update reflecting the resolution change made by the first computing device at the first site; wherein the update includes; an identification of each of the two or more data objects, data that indicates that the two or more data objects were resolved together, and for each of the two or more data objects, a version of the data object at the first site; the second computing device obtaining, for each of the two or more data objects, a version of the data object at the second site; the second computing device comparing, for each of the two or more data objects, the version of the data object at the first site to the version of the data object at the second site to determine whether the two versions are identical, ordered, or concurrent; and in response to the second computing device determining that the version of at least one data object of the two or more data objects at the first site is concurrent with the version of the at least one data object at the second site, the second computing device determining that the resolution change made by the first computing device at the first site conflicts with the version of the at least one data object at the second site. - View Dependent Claims (28)
-
Specification