Processing mutations for a remote database
First Claim
1. A method implemented by one or more data processing apparatus, the method comprising:
- accessing a log of database mutations stored on a client device, the log of database mutations indicating changes previously made to a client version of a database stored on the client device, and each database mutation specifying;
an entity included in the database;
an operation for the entity; and
a client version number for the entity;
identifying, in the log of database mutations, two or more database mutations that each specify a same client version number for a same entity, where a first database mutation of the two or more database mutations occurred before a second database mutation of the two or more database mutations;
determining, based on a conflict resolution policy and the operations specified by the first database mutation and the second database mutation, that the first database mutation of the two or more database mutations would not resolve in favor of the client device while the second database mutation of the two or more database mutations resolve in favor of the server over the client device; and
in response to determining, based on the conflict resolution policy and the operations specified by the first database mutation and the second database mutation, that the first database mutation of the two or more database mutations would not resolve in favor of the client device while the second database mutation of the two or more database mutations resolve in favor of the server over the client device, collapsing the two or more database mutations into a single database mutation.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus are described for processing mutations for a remote database. In one aspect, a method includes receiving a log of database mutations from a client device, the log of database mutations indicating changes previously made to a client version of a database stored on the client device, and each database mutation specifying: an entity included in the database; an operation for the entity; and a client version number for the entity; identifying, in the log of database mutations, two or more database mutations that each specify a same client version number for a same entity; determining, based on a conflict resolution policy, that the two or more database mutations are eligible for collapsing; and collapsing the two or more database mutations into a single database mutation.
66 Citations
18 Claims
-
1. A method implemented by one or more data processing apparatus, the method comprising:
-
accessing a log of database mutations stored on a client device, the log of database mutations indicating changes previously made to a client version of a database stored on the client device, and each database mutation specifying; an entity included in the database; an operation for the entity; and a client version number for the entity; identifying, in the log of database mutations, two or more database mutations that each specify a same client version number for a same entity, where a first database mutation of the two or more database mutations occurred before a second database mutation of the two or more database mutations; determining, based on a conflict resolution policy and the operations specified by the first database mutation and the second database mutation, that the first database mutation of the two or more database mutations would not resolve in favor of the client device while the second database mutation of the two or more database mutations resolve in favor of the server over the client device; and in response to determining, based on the conflict resolution policy and the operations specified by the first database mutation and the second database mutation, that the first database mutation of the two or more database mutations would not resolve in favor of the client device while the second database mutation of the two or more database mutations resolve in favor of the server over the client device, collapsing the two or more database mutations into a single database mutation. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
one or more data processing apparatus; and a data store storing instructions that, when executed by the one or more data processing apparatus, cause the one or more data processing apparatus to perform operations comprising; accessing a log of database mutations stored on a client device, the log of database mutations indicating changes previously made to a client version of a database stored on the client device, and each database mutation specifying; an entity included in the database; an operation for the entity; and a client version number for the entity; identifying, in the log of database mutations, two or more database mutations that each specify a same client version number for a same entity, where a first database mutation of the two or more database mutations occurred after a second database mutation of the two or more database mutations; determining, based on a conflict resolution policy and the operations specified by the first database mutation and the second database mutation, that the first database mutation of the two or more database mutations would not resolve in favor of the client device while the second database mutation of the two or more database mutations resolve in favor of the server over the client device; and in response to determining, based on the conflict resolution policy and the operations specified by the first database mutation and the second database mutation, that the first database mutation of the two or more database mutations would not resolve in favor of the client device while the second database mutation of the two or more database mutations resolve in favor of the server over the client device, collapsing the two or more database mutations into a single database mutation. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory computer readable medium storing instructions that, when executed by one or more data processing apparatus, cause the one or more data processing apparatus to perform operations comprising,
accessing a log of database mutations stored on a client device, the log of database mutations indicating changes previously made to a client version of a database stored on the client device, and each database mutation specifying: -
an entity included in the database; an operation for the entity; and a client version number for the entity; identifying, in the log of database mutations, two or more database mutations that each specify a same client version number for a same entity, where a first database mutation of the two or more database mutations occurred before a second database mutation of the two or more database mutations; determining, based on a conflict resolution policy and the operations specified by the first database mutation and the second database mutation, that the first database mutation of the two or more database mutations would not resolve in favor of the client device while the second database mutation of the two or more database mutations resolve in favor of the server over the client device; and in response to determining, based on the conflict resolution policy and the operations specified by the first database mutation and the second database mutation, that the first database mutation of the two or more database mutations would not resolve in favor of the client device while the second database mutation of the two or more database mutations resolve in favor of the server over the client device, collapsing the two or more database mutations into a single database mutation. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification