# US 2018/0322181 A1 · Storage constrained synchronization engine

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

- Number: US 2018/0322181 A1
- Document ID: US20180322181A1
- Status: Published application
- Kind: A1
- Application number: 16/035,677
- Filed: 2018-07-15
- Published: 2018-11-08
- Earliest claimed: 2016-04-25
- Assignees: Dropbox, Inc.
- Applicants: Dropbox, Inc.
- Inventors: Isaac Goldberg; Benjamin Zeis Newhouse
- Web page: https://patentgrep.com/patent/US20180322181A1

## CPC

- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/178: Techniques for file synchronisation in file systems
- G06F 16/23: Updating
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A content management system synchronizes content items across client computing systems connected by a network. If a storage allocation for shared content items on a client device is exceeded by the request to add or edit a content item such that it is enlarged, a client application or the host of content management system selects content items to remove from residence on the client device but keep remotely on content management system. Upon removal of the selected content items, the client application creates shadow items, representing the content item but only containing the metadata of the content item. This creates sufficient space while maintaining user access to all synchronized shared content items. Entries in a file journal may be used to track and manage whether a stored item is a content item or a shadow item.

## Claims

### Claim 1

A method comprising:
receiving, by a client device, an updated file journal entry from a content management system, the updated file journal entry including an updated namespace ID of a content item stored by the content management system;
comparing the updated file journal entry to a plurality of local entries in a local file journal stored by the client device to identify a shadow item on the client device representing the content item stored by the content management system, wherein the shadow item includes at least a namespace ID of the content item without the content data of the content item;
updating the identified shadow item by replacing the namespace ID of the shadow item with the updated namespace ID; and
replacing a local file journal entry corresponding to the shadow item with the updated file journal entry.

### Claim 2 (depends on 1)

The method of claim 1, wherein the updated file journal entry includes an updated blocklist of the content item, and further comprising:
determining, based on a comparison between the updated blocklist of the content item and a blocklist of the identified shadow item, that the shadow item is to be replaced with the content item;
downloading, from the content management system, blocks indicated by the updated blocklist of the content item; and
replacing the shadow item on the client device with the content item including the downloaded blocks.

### Claim 3 (depends on 1)

The method of claim 1, wherein the updated file journal entry includes an updated blocklist of the content item, and further comprising:
determining, based on a force reconstruct value associated with the updated file journal entry, that the shadow item is to be replaced with the content item;
downloading, from the content management system, blocks indicated by the updated blocklist of the content item; and
replacing the shadow item on the client device with the content item including the downloaded blocks.

### Claim 4 (depends on 1)

The method of claim 1, wherein the updated file journal entry includes an updated file path and each of the plurality of local entries includes a local file path, and wherein comparing the updated file journal entry to the plurality of local entries further comprises: comparing the updated file path with the local file path of each of the plurality of local entries.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
determining, based on the comparison of the updated file path and the local file paths, that the shadow item is to be relocated to a new file path; and
relocating the shadow item on the client device at a location indicated by the updated file path.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
determining, based on the comparison of the updated file journal entry to the plurality of local entries, that the shadow item is pending based on a change by a user of the client device; and
performing conflict resolution based on an updated modification time included in the updated file journal entry and a modification time of the shadow item.

### Claim 7 (depends on 6)

The method of claim 6, further comprising, responsive to determining that the modification time of the shadow item is later than the updated modification time: committing the change by the user of the client device to the content management system.

### Claim 8

A non-transitory computer-readable storage medium storing instructions that, when executed by a client device, cause the client device to perform operations comprising:
receiving, by the client device, an updated file journal entry from a content management system, the updated file journal entry including an updated namespace ID of a content item stored by the content management system;
comparing the updated file journal entry to a plurality of local entries in a local file journal stored by the client device to identify a shadow item on the client device representing the content item stored by the content management system, wherein the shadow item includes at least a namespace ID of the content item without the content data of the content item;
updating the identified shadow item by replacing the namespace ID of the shadow item with the updated namespace ID; and
replacing a local file journal entry corresponding to the shadow item with the updated file journal entry.

### Claim 9 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the updated file journal entry includes an updated blocklist of the content item, and further comprising:
determining, based on a comparison between the updated blocklist of the content item and a blocklist of the identified shadow item, that the shadow item is to be replaced with the content item;
downloading, from the content management system, blocks indicated by the updated blocklist of the content item; and
replacing the shadow item on the client device with the content item including the downloaded blocks

### Claim 10 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the determination that the shadow item is to be replaced with the content item is made based on a force reconstruct value associated with the updated file journal entry.

### Claim 11 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the updated file journal entry includes an updated file path and each of the plurality of local entries includes a local file path, and wherein comparing the updated file journal entry to the plurality of local entries further comprises: comparing the updated file path with the local file path of each of the plurality of local entries.

### Claim 12 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, further comprising:
determining, based on the comparison of the updated file path and the local file paths, that the shadow item is to be relocated to a new file path; and
relocating the shadow item on the client device at a location indicated by the updated file path.

### Claim 13 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, further comprising:
determining, based on the comparison of the updated file journal entry to the plurality of local entries, that the shadow item is pending based on a change by a user of the client device; and
performing conflict resolution based on an updated modification time included in the updated file journal entry and a modification time of the shadow item.

### Claim 14 (depends on 13)

The non-transitory computer-readable storage medium of claim 13, further comprising, responsive to determining that the modification time of the shadow item is later than the updated modification time: committing the change by the user of the client device to the content management system.

### Claim 15

A system comprising:
a processor, and
a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the processor to perform operations comprising:
receiving, by a client device, an updated file journal entry from a content management system, the updated file journal entry including an updated namespace ID of a content item stored by the content management system;
comparing the updated file journal entry to a plurality of local entries in a local file journal stored by the client device to identify a shadow item on the client device representing the content item stored by the content management system, wherein the shadow item includes at least a namespace ID of the content item without the content data of the content item;
updating the identified shadow item by replacing the namespace ID of the shadow item with the updated namespace ID; and
replacing a local file journal entry corresponding to the shadow item with the updated file journal entry.

### Claim 16 (depends on 15)

The system of claim 15, wherein the updated file journal entry includes an updated blocklist of the content item, and further comprising:
determining, based on a comparison between the updated blocklist of the content item and a blocklist of the identified shadow item, that the shadow item is to be replaced with the content item;
downloading, from the content management system, blocks indicated by the updated blocklist of the content item; and
replacing the shadow item on the client device with the content item including the downloaded blocks

### Claim 17 (depends on 16)

The system of claim 16, wherein the determination that the shadow item is to be replaced with the content item is made based on a force reconstruct value associated with the updated file journal entry.

### Claim 18 (depends on 15)

The system of claim 15, wherein the updated file journal entry includes an updated file path and each of the plurality of local entries includes a local file path, and wherein comparing the updated file journal entry to the plurality of local entries further comprises:
comparing the updated file path with the local file path of each of the plurality of local entries.

### Claim 19 (depends on 18)

The system of claim 18, further comprising:
determining, based on the comparison of the updated file path and the local file paths, that the shadow item is to be relocated to a new file path; and
relocating the shadow item on the client device at a location indicated by the updated file path.

### Claim 20 (depends on 15)

The system of claim 15, further comprising:
determining, based on the comparison of the updated file journal entry to the plurality of local entries, that the shadow item is pending based on a change by a user of the client device; and
performing conflict resolution based on an updated modification time included in the updated file journal entry and a modification time of the shadow item.
