US 11,748,378 B2
Conflict resolution in distributed computing
Alexander Swane Stigsen, Allerød (DK)
Assigned to MongoDB, Inc., New York, NY (US)
Filed by MongoDB, Inc., New York, NY (US)
Filed on Apr. 4, 2022, as Appl. No. 17/712,711.
Application 17/712,711 is a continuation of application No. 16/412,264, filed on May 14, 2019, granted, now 11,294,935.
Claims priority of provisional application 62/671,931, filed on May 15, 2018.
Prior Publication US 2022/0229849 A1, Jul. 21, 2022
Int. Cl. G06F 17/00 (2019.01); G06F 7/00 (2006.01); G06F 16/27 (2019.01); G06F 7/14 (2006.01)
CPC G06F 16/275 (2019.01) [G06F 7/14 (2013.01)] 25 Claims
OG exemplary drawing
 
1. A method, comprising:
accessing, at a first client device, a first changeset that is representative of an operation performed on a data object in a database by the first client device;
transmitting, from the first client device and to a server, a synchronization request for synchronizing the database with one or more changesets generated by a second client device;
receiving, at the first client device and from the server in response to synchronization request, a second changeset that is representative of an operation performed by the second client device on the data object, wherein the data object is shared between the first client device and the second client device; and
merging, at the first client device, the first changeset and the second changeset to update the data object, wherein the merging is performed based one or more rules that are specific to a type of the operation in the first changeset and the second changeset, the merging comprising:
determining a type of operation to which the first changeset corresponds and a type of operation to which the second changeset corresponds;
responsive to determining that at least one of the first changeset or the second change set corresponds to a first type of operation, applying one of the first changeset or the second changeset based on a comparison of a first timestamp associated with the first changeset and a second timestamp associated with the second changeset; and
responsive to determining that at least one of the first changeset or the second change set corresponds to a second type of operation, applying one of the first changeset or the second changeset irrespective of the first timestamp associated with the first changeset and the second timestamp associated with the second changeset.