IP Library Granted Patent US 11,461,196
Granted Patent B2
US 11,461,196 · App. 16/991,468 · Granted Oct 4, 2022

System and method for multi-tier synchronization

Inventors: Kiren R. Sekar (San Francisco, CA); Jack B. Strong (Austin, TX)
Assignee: Dropbox, Inc.
G06F11/1662G06F3/06G06F3/065G06F3/067G06F3/0617G06F3/0619G06F16/178H04L9/40H04L67/1095H04L67/1097H04L67/563
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,461,196
App. No.
16/991,468
Granted
Oct 4, 2022
Kind
B2
Abstract

The present invention provides a System and method for multi-tiered data synchronization. Data is synchronized between a master synchronization server, one or more proxy synchronization servers, and client devices. Client devices establish synchronization sessions with either a proxy synchronization server or a master synchronization server, depending on which server provides the “best” available connection to that client device. Each proxy synchronization server synchronizes data with client devices that have established a synchronization session with such proxy synchronization server. The master synchronization server synchronizes data with client devices that have established a synchronization session with the master synchronization server. Each proxy synchronization server synchronizes data with the master synchronization server. Metadata associated with synchronized files is synchronized throughout the system in real-time. Files may be synchronized in real-time or of a delayed time.

Claims (55)

1. A method comprising:

identifying a file to synchronize at a first client device connected to a local area network;

determining whether the file to synchronize at the first client device is available on a second client device connected to the local area network; and

synchronizing the file at the first client device by:

causing the second client device to download the file to the first client device based on a determination that the file is available on the second client device connected to the local area network; or

causing a synchronization server to download the file to the first client device based on a determination that the file is unavailable on the second client device.

2. The method of claim 1 , further comprising:

detecting, at the synchronization server, an updated version of the file;

determining the updated version of the file is available on the second client device connected to the local area network; and

synchronizing the updated version of the file at the first client device by causing the second client device to download the updated version of the file to the first client device based on determining the updated version of the file is available on the second client device.

3. The method of claim 2 , wherein detecting the updated version of the file is based on receiving metadata comprising revision information corresponding to the file.

4. The method of claim 1 , further comprising:

detecting, at the synchronization server, an updated version of the file;

determining the updated version of the file is unavailable on any client device connected to the local area network; and

synchronizing the updated version of the file at the first client device by causing the synchronization server to download the updated version of the file to the first client device based on determining the updated version of the file is unavailable on any client device connected to the local area network.

5. The method of claim 1 , wherein the first client device is a mobile device and the second client device is a personal computer.

6. The method of claim 1 , wherein causing the second client device to download the file to the first client device based on the determination that the file is available on the second client device connected to the local area network comprises establishing a synchronization connection between the first client device and the second client device.

7. The method of claim 1 , further comprising maintaining the synchronization connection between the first client device and the second client device until the file is synchronized.

8. A non-transitory computer readable medium storing instructions that, when executed by at least one processor, cause a computing device to:

identify a file to synchronize at a first client device connected to a local area network;

determine whether the file to synchronize at the first client device is available on a second client device connected to the local area network; and

synchronize the file at the first client device by:

causing the second client device to download the file to the first client device based on a determination that the file is available on the second client device connected to the local area network; or

causing a synchronization server to download the file to the first client device based on a determination that the file is unavailable on the second client device.

9. The non-transitory computer readable medium of claim 8 , further comprising instructions that, when executed by the at least one processor, cause the computing device to:

detect, at the synchronization server, an updated version of the file;

determine the updated version of the file is available on the second client device connected to the local area network; and

synchronize the updated version of the file at the first client device by causing the second client device to download the updated version of the file to the first client device based on determining the updated version of the file is available on the second client device.

10. The non-transitory computer readable medium of claim 9 , wherein detecting the updated version of the file is based on receiving metadata comprising revision information corresponding to the file.

11. The non-transitory computer readable medium of claim 8 , further comprising instructions that, when executed by the at least one processor, cause the computing device to:

detect, at the synchronization server, an updated version of the file;

determine the updated version of the file is unavailable on any client device connected to the local area network; and

synchronize the updated version of the file at the first client device by causing the synchronization server to download the updated version of the file to the first client device based on determining the updated version of the file is unavailable on any client device connected to the local area network.

12. The non-transitory computer readable medium of claim 8 , wherein the first client device is a mobile device and the second client device is a personal computer.

13. The non-transitory computer readable medium of claim 8 , wherein causing the second client device to download the file to the first client device based on the determination that the file is available on the second client device connected to the local area network comprises establishing a synchronization connection between the first client device and the second client device.

14. The non-transitory computer readable medium of claim 8 , further comprising instructions that, when executed by the at least one processor, cause the computing device to maintain the synchronization connection between the first client device and the second client device until the file is synchronized.

15. A system comprising:

at least one processor; and

a non-transitory computer readable medium storing instructions that, when executed by the at least one processor, cause the system to:

identify a file to synchronize at a first client device connected to a local area network;

determine whether the file to synchronize at the first client device is available on a second client device connected to the local area network; and

synchronize the file at the first client device by:

causing the second client device to download the file to the first client device based on a determination that the file is available on the second client device connected to the local area network; or

causing a synchronization server to download the file to the first client device based on a determination that the file is unavailable on the second client device.

16. The system of claim 15 , further comprising instructions that, when executed by the at least one processor, cause the system to:

detect, at the synchronization server, an updated version of the file;

determine the updated version of the file is available on the second client device connected to the local area network; and

synchronize the updated version of the file at the first client device by causing the second client device to download the updated version of the file to the first client device based on determining the updated version of the file is available on the second client device.

17. The system of claim 16 , wherein detecting the updated version of the file is based on receiving metadata comprising revision information corresponding to the file.

18. The system of claim 15 , further comprising instructions that, when executed by the at least one processor, cause the system to:

detect, at the synchronization server, an updated version of the file;

determine the updated version of the file is unavailable on any client device connected to the local area network; and

synchronize the updated version of the file at the first client device by causing the synchronization server to download the updated version of the file to the first client device based on determining the updated version of the file is unavailable on any client device connected to the local area network.

19. The system of claim 15 , wherein causing the second client device to download the file to the first client device based on the determination that the file is available on the second client device connected to the local area network comprises establishing a synchronization connection between the first client device and the second client device.

20. The system of claim 15 , further comprising instructions that, when executed by the at least one processor, cause the system to maintain the synchronization connection between the first client device and the second client device until the file is synchronized.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2020
From: SEKAR, KIREN R; STRONG, JACK B
To: SHARPCAST, INC.
Reel/Frame 053477/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2020
From: SUGARSYNC, INC.
To: DROPBOX, INC.
Reel/Frame 053477/0237 →
CHANGE OF NAME Recorded Aug 12, 2020
From: SHARPCAST, INC.
To: SUGARSYNC, INC.
Reel/Frame 054240/0505 →