EP3680784B1

Sharing and deconflicting data changes in a multimaster database system

Abstract

This record has no abstract on file.

EP3680784B1, drawing sheet 1
Sheet 1 of 7

Term

4.8 yearsleft in the term

Expires 13 July 2031.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

12 claims: 10 independent, 2 dependent

  1. 1
    In a multimaster database system comprising a plurality of sites (101, 102, 103), a method for sharing and deconflicting data changes to data objects, each data object comprising properties and links to other data objects, the method comprising:a first computing device at a first site (101) of the plurality of sites resolving two separate data objects together, involving: determining that the two separate data objects correspond to a same real-world entity, copying properties and links of a first one of the two separate data objects to a second one of the two separate data objects, and deleting the properties and links from the first one of the two separate data obj ects;the first computing device retaining the two separate data objects in the multimaster database system;sharing the resolution of the two separate data objects as a resolution change, with one or more other sites of the plurality of sites;a second computing device at a second site (102) 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 separate data objects, data that indicates that the two separate data objects were resolved together, and for each of the two separate data objects, a version vector for the data object at the first site;the second computing device obtaining, for each of the two separate data objects resolved together, a version vector for the data object at the second site;the second computing device comparing, for each of the two separate data objects resolved together, the version vector for the data object at the first site to the version vector for the data object at the second site to determine whether the two version vectors are identical, ordered, or concurrent;and the second computing device determining that the version vector for at least one data object of the two separate data objects resolved together at the first site is concurrent with the version vector for the at least one data object at the second site;and the second computing device, in response to determining that that the version vector for at least one data object of the two separate data objects resolved together at the first site is concurrent with the version vector for the at least one data object at the second site, either: (a) automatically deconflicting the resolution change using heuristics and/or deconfliction rules, or (b) deconflicting the resolution change based on user input;and wherein deconflicting the resolution change via either (a) or (b) comprises the second computing device unresolving the two separate data objects resolved together by retrieving the retained two separate data objects.
  2. 3
    The method according to one of the previous claims, the second computing device incorporating the resolution change at the second site if each version vector of the two data objects resolved together at the first site is ordered after the version vector of the at least one data object at the second site.
  3. 4
    The method of one of the previous claims, resolving the two separate data objects together further comprising:resolving the two separate data objects into a single data object corresponding to the second one of the two separate data objects.
  4. 5
    The method of one of the previous claims, further comprising, after unresolving the two data objects at the second side, incrementing each version vector for each of the two retained data objects.
  5. 6
    A computer-readable non-transitory medium storing processor-executable instructions which when executed cause performance of the method as recited in any of one of claims 1 to 5.
  6. 7
    A computing device in a first site (101) for sharing and deconflicting data changes to data objects, each data object comprising properties and links to other data objects, the computing device being part of a multimaster database system comprising a plurality of sites (101, 102, 103), the computing device comprising:means for receiving an update reflecting a resolution change made by another computing device at a second site of the plurality of sites, the other computing device resolving at the second site two separate data objects together, the resolving of the two separate objects together involving: determining that the two separate data objects correspond to a same real-world entity, copying properties and links of a first one of the two separate data objects to a second one of the two separate data objects, and deleting the properties and links from the first one of the two separate data obj ects;the other computing device retaining the two separate data objects in the multimaster database system;wherein the update includes: an identification of each of the two separate data objects, data that indicates that the two separate data objects were resolved together, and for each of the two separate data objects, a version vector the data object at the first site;means for obtaining, for each of the two separate data objects resolved together, a version vector for the data object at the second site;means for comparing, for each of the two separate data objects resolved together, the version vector the data object at the first site to the version vector for the data object at the second site to determine whether the two versions are identical, ordered, or concurrent;and means for determining that the version vector for at least one data object of the two separate data objects resolved together at the first site is concurrent with the version vector for the at least one data object at the second site;and means for, in response to determining that that the version vector for at least one data object of the two separate data objects resolved together at the first site is concurrent with the version vector for the at least one data object at the second site, either: (a) automatically deconflicting the resolution change using heuristics and/or deconfliction rules, or (b) deconflicting the resolution change based on user input;and wherein deconflicting the resolution change via either (a) or (b) comprises the second computing device unresolving the two separate data objects based on the retained two separate data objects.
  7. 8
    The computing device according to the previous claim 7, further comprising:means for incorporating the resolution change at the first site if each version vector of the two data objects resolved together at the second site is ordered after the version vector of the at least one data object at the first site.
  8. 9
    The computing device according to one of the previous claims 7 and 8, further comprising:means for resolving the two separate data objects into a single data object corresponding to the second one of the two separate data objects.
  9. 10
    The computing device according to one of the previous claims 7 to 9, further comprising:means for incrementing each version vector for each of the two retained data objects.
  10. 11
    A multimaster database system for sharing and deconflicting data changes to data objects, each data object comprising properties and links to other data objects, the multimaster database system comprising a plurality of replication sites (101, 102, 103), the multimaster database system further comprising:one or more computing devices at a first site (101) of a plurality of replication, the one or more computing devices at the first site comprising: means for resolving two or more data objects together, involving: means for determining that the two separate data objects correspond to a same real-world entity, means for copying properties and links of a first one of the two separate data objects to a second one of the two separate data objects, and means for deleting the properties and links from the first one of the two separate data objects;means for retaining the two separate data objects in the multimaster database system;means sharing the resolution of the two or more data objects as a resolution change with one or more other sites of the plurality of sites;one or more computing devices at a second site (102) of the plurality of replication sites as recited in any one of the claims 7 to 10.
  11. 12
    The multimaster database system of the previous claim 11, wherein the one or more computing devices at the first site comprise means for incrementing each version vector for each of the two or more data objects resolved together prior to sharing the resolution change.