# US 10,872,063 B2 · Local terminal and synchronization system including the same

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

- Number: US 10,872,063 B2
- Document ID: US10872063B2
- Status: Granted
- Kind: B2
- Application number: 16/176,042
- Filed: 2018-10-31
- Published: 2020-03-19
- Granted: 2020-12-22
- Earliest claimed: 2018-09-17
- Assignees: Asd Korea
- Applicants: ASD Korea
- Inventors: Sun Ung Lee; Maksim Azarov
- Web page: https://patentgrep.com/patent/US10872063B2

## CPC

- G06F 16/178: Techniques for file synchronisation in file systems
- G06F 16/1844: {Management specifically adapted to replicated file systems}
- G06F 16/2246: {Trees, e.g. B+trees}
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- 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]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In a synchronization system including a local terminal, latest metadata of a file in a local storage and latest metadata of a file in the server storage are managed in a first tree database, which is a virtual database in a local terminal, and each of the local terminals is allowed to upload or download a changed file on the basis of the metadata in the first tree database so that a conflict that may occur due to multiple users simultaneously changing files can be minimized.

## Claims

### Claim 1

A local terminal having a local storage and performing file synchronization between a server storage and the local storage, the local terminal comprising:
at least one processor executing one or more programs stored in non-volatile computer-readable storage medium;
a first tree database executed by the processor to which latest metadata of a file in the local storage and latest metadata of a file in the server storage are updated in real time;
a first calculator executed by the processor configured to compare the metadata of the file in the local storage with metadata stored in the first tree database;
a first synchronizer executed by the processor comprising a first executor configured to, when from a comparison result of the first calculator it is determined that the file in the local storage has been changed, update the metadata of the file in the local storage in real time to the first tree database and an uploader configured to upload the changed file in the local storage to the server storage;
a detector executed by the processor configured to monitor the file in the server storage and, when the file in the server storage is changed, update metadata of the changed file in the server storage to a second tree database in the local terminal;
a second calculator executed by the processor configured to compare the metadata stored in the first tree database with metadata stored in the second tree database; and
a second synchronizer executed by the processor comprising a second executor configured to, when from a comparison result of the second calculator it is determined that metadata newly updated to the second tree database is newer than the metadata stored in the first tree database, update the metadata newly updated to the second tree database in real time to the first tree database and a downloader configured to download the changed file in the server storage to the local storage.

### Claim 2 (depends on 1)

The local terminal of claim 1, wherein the first executor updates the metadata of the changed file in the local storage in real time to the first tree database within a first period of time and the uploader uploads the changed file in the local storage to the server storage for a second period of time that is longer than the first period of time.

### Claim 3 (depends on 1)

The local terminal of claim 1, wherein the second executor updates the metadata newly updated to the second tree database in real time to the first tree database within a third period of time and the downloader downloads the changed file in the server storage to the local storage for a fourth period of time that is longer than the third period of time.

### Claim 4 (depends on 1)

The local terminal of claim 1, wherein the metadata update and file upload process in the first synchronizer is performed independently of the metadata update and file download process in the second synchronizer.

### Claim 5 (depends on 1)

The local terminal of claim 1, wherein when the file in the local storage or the file in the server storage is changed a plurality of times, metadata of the changed files are updated in real time to the first tree database and then the changed files are uploaded to the server storage or downloaded to the local storage.

### Claim 6 (depends on 1)

The local terminal of claim 1, wherein when it is determined that the metadata newly updated to the second tree database is newer than the metadata stored in the first tree database, it indicates that metadata of a file changed in a local storage in a different terminal is newly updated to the second tree database as the file changed in the local storage in the different local terminal is uploaded to the server storage.

### Claim 7 (depends on 1)

The local terminal of claim 1, wherein when the comparison result of the first calculator indicates that the metadata of the file in the local storage matches the metadata stored in the first tree database and the comparison result of the second calculator indicates that the metadata stored in the second tree database matches the metadata stored in the first tree database, the file synchronization between the server storage and the local storage is completed.

### Claim 8 (depends on 1)

The local terminal of claim 1, wherein the at least one processor includes a hardware processor.

### Claim 9 (depends on 1)

The local terminal of claim 1, wherein the local terminal is selected from the group consisting of a desktop computer, a notebook computer, and a portable device.

### Claim 10

A synchronization system comprising:
at least one processor executing one or more programs stored in non-volatile computer-readable storage medium;
a plurality of local terminals which each have a local storage and perform file synchronization between a set server storage and the local storage,
wherein each of the plurality of local terminals includes:
a first tree database executed by the processor to which latest metadata of a file in the local storage and latest metadata of a file in the server storage are updated in real time;
a first calculator executed by the processor configured to compare the metadata of the file in the local storage with metadata stored in the first tree database;
a first synchronizer executed by the processor comprising a first executor configured to, when from a comparison result of the first calculator it is determined that the file in the local storage has been changed, update the metadata of the file in the local storage in real time to the first tree database and an uploader configured to upload the changed file in the local storage to the server storage;
a detector executed by the processor configured to monitor the file in the server storage and, when the file in the server storage is changed, update metadata of the changed file in the server storage to a second tree database in the local terminal;
a second calculator executed by the processor configured to compare the metadata stored in the first tree database with metadata stored in the second tree database; and
a second synchronizer executed by the processor comprising a second executor configured to, when from a comparison result of the second calculator it is determined that metadata newly updated to the second tree database is newer than the metadata stored in the first tree database, update the metadata newly updated to the second tree database in real time to the first tree database and a downloader configured to download the changed file in the server storage to the local storage, and
the first tree database of each of the plurality of local terminals is updated in real time in the same form as each other.

### Claim 11 (depends on 10)

The synchronization system of claim 10, wherein the at least one processor includes a hardware processor.

### Claim 12 (depends on 10)

The synchronization system of claim 10, wherein the plurality of local terminals includes at least one of a desktop computer, a laptop computer, and a portable device.
