IP Library Granted Patent US 9,998,541
Granted Patent B2
US 9,998,541 · App. 15/727,565 · Granted Jun 12, 2018

Content item synchronization by block

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 9,998,541
App. No.
15/727,565
Granted
Jun 12, 2018
Kind
B2
Abstract

A content management system synchronizes content items across client computing systems. The content items are transmitted to the content management system and managed as blocks of data with a fixed size. When a new content item is added to synchronized data at a client, the client transmits the blocks and a blocklist to the content management system. The content management system uses the blocklist to determine blocks expected to be received at the content management system and the client begins to transmit blocks of the content item to the content management system. When blocks received at the content management system match expected blocks, the content management system notifies receiving clients to begin receiving blocks for the content item, prior to receipt of all blocks on the blocklist at the content management system. This enables content items to begin synchronization across clients prior to actual entry of the content item into the content management system.

Claims (43)

1. A method comprising:

receiving, at an online content management system from a remote uploading client computer via a network, a first block corresponding to a first block identifier in a blocklist corresponding to the content item; and

responsive to receiving the first block at the online content management system and before receiving all blocks corresponding to the content item:

obtaining a namespace identifier associated with the content item;

identifying, by the online content management system, a remote receiving client computer associated with the namespace identifier; and

sending, by the online content management system, the blocklist and the first block of the content item to the remote receiving client computer.

2. The method of claim 1 , wherein the namespace identifier is associated with a directory structure of the online content management system accessible by a set of client computers including the remote uploading client computer, and wherein obtaining the namespace identifier comprises determining that the directory structure is accessible to the remote uploading client computer.

3. The method of claim 1 , further comprising:

maintaining a namespace table storing associations between namespaces and client computers, wherein each namespace in the namespace table is assigned a namespace identifier;

wherein identifying the remote receiving client computer comprises querying the namespace table with the obtained namespace identifier.

4. The method of claim 1 , wherein obtaining the namespace identifier comprises receiving the namespace identifier from the remote uploading client computer.

5. The method of claim 1 , further comprising receiving, by the online content management system, a second block corresponding to a second block identifier in the blocklist and transmitting the second block to the receiving client computer via the network.

6. The method of claim 1 , wherein the blocklist defines an order for reassembling blocks of data into the content item.

7. The method of claim 1 further comprising:

prior to sending the blocklist and the first block, notifying, by the online content management system, the receiving client computer that the first block has been received.

8. A content management system comprising:

a processor; and

a non-transitory computer-readable storage medium storing executable instructions that when executed by the processor perform steps comprising:

receiving, at the online content management system from a remote uploading client computer via a network, a first block corresponding to a first block identifier in a blocklist corresponding to the content item; and

responsive to receiving the first block at the online content management system and before receiving all blocks corresponding to the content item:

obtaining a namespace identifier associated with the content item;

identifying, by the online content management system, a remote receiving client computer associated with the namespace identifier; and

sending, by the online content management system, the blocklist and the first block of the content item to the remote receiving client computer.

9. The system of claim 8 , wherein the namespace identifier is associated with a directory structure of the online content management system accessible by a set of client computers including the remote uploading client computer, and wherein obtaining the namespace identifier comprises determining that the directory structure is accessible to the remote uploading client computer.

10. The system of claim 8 , where identifying the remote receiving client computer comprises querying a namespace table storing associations between namespaces and client computers with the obtained namespace identifier.

11. The system of claim 8 , wherein obtaining the namespace identifier comprises receiving the namespace identifier from the remote uploading client computer.

12. The system of claim 8 , wherein the blocklist and the first block are sent to the remote receiving client computer in response to requesting a request for the content item from the receiving client computer.

13. The system of claim 8 , wherein the online content management system is configured to notify the receiving client computer as each block of data is received.

14. A non-transitory computer-readable medium containing instructions which when executed by a processor cause the processor to execute the steps of:

receiving, at an online content management system from a remote uploading client computer via a network, a first block corresponding to a first block identifier in a blocklist corresponding to the content item; and

responsive to receiving the first block at the online content management system and before receiving all blocks corresponding to the content item:

obtaining a namespace identifier associated with the content item;

identifying, by the online content management system, a remote receiving client computer associated with the namespace identifier; and

sending, by the online content management system, the blocklist and the first block of the content item to the remote receiving client computer.

15. The medium of claim 14 , wherein the namespace identifier is associated with a directory structure of the online content management system accessible by a set of client computers including the remote uploading client computer, and wherein obtaining the namespace identifier comprises determining that the directory structure is accessible to the remote uploading client computer.

16. The medium of claim 15 , wherein the instructions further cause the processor to perform steps comprising:

maintaining a namespace table storing associations between namespaces and client computers, wherein each namespace in the namespace table is assigned a namespace identifier;

wherein identifying the remote receiving client computer comprises querying the namespace table with the obtained namespace identifier.

17. The medium of claim 14 , wherein obtaining the namespace identifier comprises receiving the namespace identifier from the remote uploading client computer.

18. The medium of claim 14 , wherein the instructions further cause the processor to perform steps comprising receiving, by the online content management system, a second block corresponding to a second block identifier in the blocklist and transmitting the second block to the receiving client computer via the network.

19. The medium of claim 14 , wherein the blocklist defines an order for reassembling blocks of data into the content item.

20. The medium of claim 14 , wherein the instructions further cause the processor to perform steps comprising:

prior to sending the blocklist and the first block, notifying, by the online content management system, the receiving client computer that the first block has been received.

Assignments (4)
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 Oct 30, 2017
From: TATAROIU, BOGDAN-CRISTIAN; KOORAPATI, NIPUNN
To: DROPBOX, INC.
Reel/Frame 043986/0599 →