×

Synchronization system for multiple client devices

  • US 10,387,451 B2
  • Filed: 09/30/2014
  • Issued: 08/20/2019
  • Est. Priority Date: 05/30/2014
  • Status: Active Grant
First Claim
Patent Images

1. A computer-implemented method practiced on a client device comprising two synchronization engines, the method comprising:

  • receiving, by the client device, a synchronization token for a user data set to synchronize down from a synchronization service to the client device, the receiving based at least in part on one or more synchronization preferences specified by the client device being met;

    in response to receiving the synchronization token and determining that the received synchronization token is more recent than a corresponding synchronization token for the data set on the client device;

    receiving, from the synchronization service, by the client device utilizing a first synchronization engine, a first snapshot of user data stored by a remote storage service, wherein timing of the receiving is dynamically adjustable by the synchronization service based on a first set of conditions that include whether one or more synchronization preferences of the client device coincide with a determination by the synchronization service that a synchronize down operation is needed, independent from the synchronization service detecting a change to user data at the remote storage service;

    storing the first snapshot of the user data in a first database on the client device;

    downloading content corresponding to one or more differences between the user data on the remote storage service and the user data on the client device file system;

    updating a file system on the client device with the downloaded content to reflect one or more differences between the user data on the remote storage service and the user data on the file system, as indicated in the first snapshot;

    generating a second snapshot of the user data from the file system on the client device;

    storing the second snapshot in a second database on the client device, the second database different from the first database; and

    transmitting the second snapshot in the second database on the client device to the remote storage service, utilizing a second synchronization engine, for processing by the synchronization service, wherein timing of the transmitting to the remote storage service is dynamically determined by the client device based on a second set of conditions, different from the first set of conditions.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×