# US 10,320,950 B2 · Optimized syncing of metadata changes using chunked response

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

- Number: US 10,320,950 B2
- Document ID: US10320950B2
- Status: Granted
- Kind: B2
- Application number: 15/393,991
- Filed: 2016-12-29
- Published: 2018-07-05
- Granted: 2019-06-11
- Earliest claimed: 2016-12-29
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Alexander Yuryevich Mazukabzov; Rayyan Jaber
- Web page: https://patentgrep.com/patent/US10320950B2

## CPC

- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 16/10: File systems; File servers
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Aspects of the present disclosure relate to systems and methods for optimizing syncing of metadata changes using a chunked response. In one aspect, an application may be launched in a foreground of a client computing device. A single streaming request may be sent to an application service for updated metadata of a dataset while the application is running in the foreground. A response to the single streaming request may be received at the client computing device. The response may include the updated metadata of the dataset, where the updated metadata is represented as a plurality of pages. While the application is running in a background of the client computing device, each page of the plurality of pages may be processed as the response to the single streaming request is received.

## Claims

### Claim 1

A system comprising:
one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media that, when executed by at least one processor, cause the at least one processor to at least:
launch an application of a client computing device;
send a single streaming request to an application service for updated metadata of a dataset;
receive a response to the single streaming request, the response including the updated metadata of the dataset, where the updated metadata is represented as a plurality of pages;
when the application has access to processing cycles of the at least one processor, process each page of the plurality of pages as the response to the single streaming request is received; and
upon a network error occurring while receiving the response to the single streaming request, identifying a last processed page of the plurality of pages of updated metadata.

### Claim 2 (depends on 1)

The system of claim 1, wherein each page of the plurality of pages includes a sync token.

### Claim 3 (depends on 2)

The system of claim 2, wherein the sync token indicates a last metadata update that is processed as the response to the single streaming request is received.

### Claim 4 (depends on 1)

The system of claim 1, wherein the updated metadata includes metadata changes that occurred since a last request was sent to the application service for updated metadata of the dataset.

### Claim 5 (depends on 1)

The system of claim 1, wherein the updated metadata includes metadata changes that have not been processed by the client computing device.

### Claim 6 (depends on 1)

The system of claim 1, wherein the updated metadata includes metadata changes that occurred between a first time and a second time.

### Claim 7 (depends on 6)

The system of claim 6, wherein each page of the plurality of pages includes metadata changes that occurred in a time span within the first time and the second time.

### Claim 8 (depends on 1)

The system of claim 1, wherein the client computing device is a compute limited client computing device.

### Claim 9

A computer-implemented method for synchronizing a dataset in a client computing device, the method comprising:
launching an application in a foreground of the client computing device;
sending a single streaming request to an application service for updated metadata of the dataset while the application is running in the foreground;
receiving a response to the single streaming request, the response including the updated metadata of the dataset, where the updated metadata is represented as a plurality of pages;
while the application is running in a background of the client computing device, processing each page of the plurality of pages as the response to the single streaming request is received; and
upon a network error occurring while receiving the response to the single streaming request, identifying a last processed page of the plurality of pages of updated metadata.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, further comprising subsequent to the network error occurring, launching the application.

### Claim 11 (depends on 10)

The computer-implemented method of claim 10, further comprising sending another single streaming request for the updated metadata of the dataset remaining after a last processed metadata update.

### Claim 12 (depends on 9)

The computer-implemented method of claim 9, wherein the updated metadata includes metadata changes that occurred since a last request was sent to the application service for updated metadata of the dataset.

### Claim 13 (depends on 9)

The computer-implemented method of claim 9, wherein the updated metadata includes metadata changes that have not been processed by the client computing device.

### Claim 14 (depends on 9)

The computer-implemented method of claim 9, wherein the client computing device is a compute limited client computing device.

### Claim 15 (depends on 9)

The computer-implemented method of claim 9, wherein the last processed page of the plurality of pages of updated metadata is identified using a sync token.

### Claim 16

A system comprising:
at least one processor; and
memory encoding computer executable instructions that, when executed by the at least one processor, perform a method for resuming syncing of updated metadata of a dataset comprising:
receiving a response to a first single streaming request issued by an application for the updated metadata of the dataset, where the updated metadata is represented as a plurality of pages;
processing each page of the plurality of pages of updated metadata as the response to the first single streaming request is received;
upon a network error occurring while receiving the response to the first single streaming request, identifying a last processed page of the plurality of pages of updated metadata;
subsequent to the network error occurring, launching the application; and
sending a second single streaming request for the updated metadata of the dataset represented by each page of the plurality of pages remaining after the last processed page of the plurality of pages of updated metadata.

### Claim 17 (depends on 16)

The system of claim 16, wherein the application is launched in a foreground of the client computing device.

### Claim 18 (depends on 16)

The system of claim 16, wherein the response to the first single streaming request is received while the application is not running.

### Claim 19 (depends on 16)

The system of claim 16, further comprising receiving a response to the second single streaming request, the response including the updated metadata of the dataset represented by each page of the plurality of pages remaining after the last processed page of the plurality of pages of updated metadata.

### Claim 20 (depends on 19)

The system of claim 19, further comprising processing each page of the plurality of pages as the response to the second single streaming request is received.
