# US 2022/0035804 A1 · Mobile data synchronization framework

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2022/0035804 A1
- Document ID: US20220035804A1
- Status: Published application
- Kind: A1
- Application number: 17/340,706
- Filed: 2021-06-07
- Published: 2022-02-03
- Earliest claimed: 2018-09-10
- Assignees: Nuvolo Technologies Corporation
- Applicants: Nuvolo Technologies Corporation
- Inventors: Nabil Enayet; Jake Ye; Tejas Yadav; Asim Rizvi
- Web page: https://patentgrep.com/patent/US20220035804A1

## CPC

- G06F 16/2455: Query execution
- G06F 16/178: Techniques for file synchronisation in file systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, systems, apparatus, including computer programs encoded on computer storage media, for fast download of a portion of an enterprise database. In one aspect, the method includes actions of receiving an enterprise database access request, determining a portion of the enterprise database that is accessible to a user that originated the access request, and determining that the received request is a first occurrence of a request for access. Responsive to the first request for access, the operations may also include (i) retrieving each record of the portion of the enterprise database for storage in a synchronization queue, (ii) receiving a download request based on a determination that a first record of the portion of the enterprise database has been placed in the synchronization queue, and (iii) providing the first record to a user device while the server continues to transfer other records of the enterprise database to the synchronization queue.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving, by a server device and from a user device, a request to access a portion of an enterprise database;
determining that the request is a first occurrence of a request for access to a portion of the enterprise database; and
in response to determining:
(i) initiating a retrieval process that retrieves each record of a plurality of records for storage in a synchronization queue; and
(ii) providing a first record of the plurality of records while the server device continues to transfer one or more other records of the plurality of records to the synchronization queue.

### Claim 2 (depends on 1)

The method of claim 1, the method further comprising:
continuing to provide, by the server, a remainder of the plurality of records that have been transferred to the synchronization queue until each of the plurality of records transferred to the synchronization queue have been provided to the user device.

### Claim 3 (depends on 1)

The method of claim 1, the method further comprising:
determining, by the server while providing , that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) a first time stamp indicating a point in time when the user device synchronized records with the enterprise database and (ii) a respective second time stamp, for each record of the plurality of records, indicating a point in time that each respective record of the plurality of records was last updated.

### Claim 4 (depends on 3)

The method of claim 3, wherein determining, by the server, that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) the first time stamp and (ii) the second respective time stamp, for each record of the plurality of records, comprises:
determining, by the server, that one or more of the second respective time stamps occur at a point in time after the first time stamp.

### Claim 5 (depends on 4)

The method of claim 4, the method further comprising:
obtaining, by the server, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp; and
initiating, by the server, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue.

### Claim 6 (depends on 1)

The method of with claim 1, the method further comprising:
in response to determining, by the server device, that the received request is not a first occurrence of a request for access to the portion of the enterprise database by the user device:
initiating, by the server, a delta synchronization process that is configured to determine whether one or more of the plurality of records of the portion of the enterprise database are associated with a second respective time stamp indicating a point in time that each respective record of the plurality of records was last updated that occurs at a point in time that is later than a first time stamp indicating a point in time when the user device synchronized records with the enterprise database;
obtaining, by the server, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp;
initiating, by the server, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue;
receiving a download request from a user device, wherein the download request from the user device is received responsive to a determination by the user device that a first record of the plurality of records has been placed in the synchronization queue by the server; and
providing, by the server and responsive to the received download request, the first record of the plurality of records while the server continues to transfer one or more other records of the plurality of records to the synchronization queue.

### Claim 7 (depends on 1)

The method of claim 1, wherein the received request that is not the first occurrence of a request for access to the portion of the enterprise database by the user device comprises a periodic request for an update to the portion of the enterprise database that is stored on the user device.

### Claim 8

A system comprising:
one or more computers and one or more storage devices storing instructions that are operable, when executed by one or more computers, to cause the one or more computers to perform the operations comprising:
receiving, by a server device and from a user device, a request to access at least a portion of an enterprise database, wherein the portion of the enterprise database includes a plurality of records;
determining that the request is a first occurrence of a request for access to a portion of the enterprise database;
in response to determining:
(i) initiating a retrieval process that retrieves each record of a plurality of records for storage in a synchronization queue; and
(ii) providing a first record of the plurality of records while the server device continues to transfer one or more other records of the plurality of records to the synchronization queue.

### Claim 9 (depends on 8)

The system of claim 8, the operations further comprising:
continuing to provide, by the server, a remainder of the plurality of records that have been transferred to the synchronization queue until each of the plurality of records transferred to the synchronization queue have been provided to the user device.

### Claim 10 (depends on 8)

The system of claim 8, the operations further comprising:
determining, by the server while providing , that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) a first time stamp indicating a point in time when the user device synchronized records with the enterprise database and (ii) a respective second time stamp, for each record of the plurality of records, indicating a point in time that each respective record of the plurality of records was last updated.

### Claim 11 (depends on 10)

The system of claim 10, wherein determining, by the server, that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) the first time stamp and (ii) the second respective time stamp, for each record of the plurality of records, comprises:
determining, by the server, that one or more of the second respective time stamps occur at a point in time after the first time stamp.

### Claim 12 (depends on 11)

The system of claim 11, the operations further comprising:
obtaining, by the server, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp; and
initiating, by the server, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue.

### Claim 13 (depends on 8)

The system of claim 8, the operations further comprising:
in response to determining, by the server device, that the received request is not a first occurrence of a request for access to the portion of the enterprise database by the user device:
initiating, by the server, a delta synchronization process that is configured to determine whether one or more of the plurality of records of the portion of the enterprise database are associated with a second respective time stamp indicating a point in time that each respective record of the plurality of records was last updated that occurs at a point in time that is later than a first time stamp indicating a point in time when the user device synchronized records with the enterprise database;
obtaining, by the server, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp;
initiating, by the server, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue;
receiving a download request from a user device, wherein the download request from the user device is received responsive to a determination by the user device that a first record of the plurality of records has been placed in the synchronization queue by the server; and
providing, by the server and responsive to the received download request, the first record of the plurality of records while the server continues to transfer one or more other records of the plurality of records to the synchronization queue.

### Claim 14 (depends on 8)

The system of claim 8, wherein the received request that is not the first occurrence of a request for access to the portion of the enterprise database by the user device comprises a periodic request for an update to the portion of the enterprise database that is stored on the user device.

### Claim 15

A computer-readable medium encoded with instructions that, when executed by or more computers, cause the one or more computers to perform the operations comprising:
receiving, by a server device and from a user device, a request to access at least a portion of an enterprise database, wherein the portion of the enterprise database includes a plurality of records;
determining that the request is a first occurrence of a request for access to the portion of the enterprise database; and
in response to the determining:
(i) initiating a retrieval process that retrieves each record of a plurality of records for storage in a synchronization queue; and
(ii) providing a first record of the plurality of records while the server device continues to transfer one or more other records of the plurality of records to the synchronization queue.

### Claim 16 (depends on 15)

The computer-readable medium of claim 15, the operations further comprising:
continuing to provide, by the server, a remainder of the plurality of records that have been transferred to the synchronization queue until each of the plurality of records transferred to the synchronization queue have been provided to the user device.

### Claim 17 (depends on 15)

The computer-readable medium of claim 15, the operations further comprising:
determining, by the server while providing , that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) a first time stamp indicating a point in time when the user device synchronized records with the enterprise database and (ii) a respective second time stamp, for each record of the plurality of records, indicating a point in time that each respective record of the plurality of records was last updated.

### Claim 18 (depends on 17)

The computer-readable medium of claim 17, wherein determining, by the server, that one or more records of the plurality of records that have previously been provided to the user device are to be updated using a current copy of the one or more records stored by the enterprise database based on (i) the first time stamp and (ii) the second respective time stamp, for each record of the plurality of records, comprises:
determining, by the server, that one or more of the second respective time stamps occur at a point in time after the first time stamp.

### Claim 19 (depends on 18)

The computer-readable medium of claim 18, the operations further comprising:
obtaining, by the server, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp; and
initiating, by the server, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue.

### Claim 20 (depends on 15)

The computer-readable medium of claim 15, the operations further comprising:
in response to determining, by the server device, that the received request is not a first occurrence of a request for access to the portion of the enterprise database by the user device:
initiating, by the server, a delta synchronization process that is configured to determine whether one or more of the plurality of records of the portion of the enterprise database are associated with a second respective time stamp indicating a point in time that each respective record of the plurality of records was last updated that occurs at a point in time that is later than a first time stamp indicating a point in time when the user device synchronized records with the enterprise database;
obtaining, by the server, each record of the plurality of records having a respective second time stamp that is later in time that the first time stamp;
initiating, by the server, a retrieval process that is configured to retrieve a current copy of each record of the plurality of records having a respective second time stamp that occurs at a point in time after the first time stamp for storage in a synchronization queue;
receiving a download request from a user device, wherein the download request from the user device is received responsive to a determination by the user device that a first record of the plurality of records has been placed in the synchronization queue by the server; and
providing, by the server and responsive to the received download request, the first record of the plurality of records while the server continues to transfer one or more other records of the plurality of records to the synchronization queue.
