×

Processing mutations for a remote database

  • US 10,521,417 B2
  • Filed: 06/24/2015
  • Issued: 12/31/2019
  • Est. Priority Date: 06/24/2014
  • Status: Active Grant
First Claim
Patent Images

1. A method implemented by one or more data processing apparatus, the method comprising:

  • receiving, by a server, a log of database mutations from a single client device, the log of database mutations indicating changes previously made to a client version of a database stored on the single client device, and each database mutation specifying;

    an entity included in the database, where the entity includes a row or record in the database;

    an operation for the entity; and

    a client version number for the entity;

    identifying, in the log of database mutations and by the server, two or more database mutations that each specify a same client version number for a same entity and specify a different operation that was performed on the single client device for the same entity;

    determining, by the server and based on a conflict resolution policy that describes a policy for resolving a conflict in the entity between the single client device and the server, that a conflict between the single client device and the server for a first database mutation of the two or more database mutations resolves in favor of the client device over the server; and

    in response to determining the conflict between the single client device and the server for the first database mutation of the two or more database mutations resolves in favor of the client device over the server, collapsing the first database mutation and a second database mutation of the two or more database mutations, that specifies setting a value of the entity to a different value than the first database mutation specifies, into a single database mutation that specifies a single operation that sets the value of the entity to the different value,wherein a conflict between the second database mutation and the server resolves in favor of the client device because both the first database mutation occurred before the second database mutation and the conflict between first database mutation and the server resolves in favor of the client device.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×