| CPC G06F 16/275 (2019.01) [G06F 7/14 (2013.01)] | 20 Claims |

|
1. A database system comprising:
a database having a dynamic schema; and
at least one processor configured to:
generate, at a first client device, a first changeset that is representative of an operation on a data object in a database;
transmit, from the first client device and to one or more servers, a synchronization request for synchronizing the database with one or more changesets generated by a second client device;
receive, at the first client device and from the one or more servers in response to the synchronization request, a second changeset that is representative of an operation performed by the second client device on the data object, wherein the database is shared between the first client device and the second client device; and
merge, at the first client device, the first changeset and the second changeset to update the data object, wherein the merging is performed based on data received from a plurality of the one or more servers operating in parallel to each other, 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 changeset 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 changeset correspond 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.
|