IP Library Granted Patent US 8,745,267
Granted Patent B2
US 8,745,267 · App. 13/969,474 · Granted Jun 3, 2014

Enhancement of upload and/or download performance based on client and/or server feedback information

Inventors: Ryan Luecke (Menlo Park, CA); Jeff Queisser (San Francisco, CA); James P. Lyons (San Mateo, CA)
Assignee: Box, Inc.
H04L45/124H04L67/327H04L67/1002
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 8,745,267
App. No.
13/969,474
Granted
Jun 3, 2014
Kind
B2
Abstract

Systems and methods for providing enhancement of upload and/or download performance based on client and/or server feedback information are disclosed. In an embodiment, the disclosed method detects that a data transfer event is about to occur and based on a set of characteristics associated with the data transfer event, selects a host from a group of hosts as a pathway for transferring data associated with the data transfer event to optimize data transfer performance. The group of hosts can include a server providing cloud-based collaboration and/or storage services, one or more content delivery network servers and/or geographically distributed edge servers.

Claims (48)

1. A method of using feedback information to optimize data transfer performance, comprising:

detecting that a data transfer event is about to occur; and

based on a set of characteristics associated with the data transfer event, selecting a host from a group of hosts as a pathway for transferring data associated with the data transfer event to optimize data transfer performance;

wherein selecting the host from the group of hosts further comprises:

retrieving an aggregation profile corresponding to the set of characteristics;

wherein the aggregation profile is one of a plurality of aggregation profiles; and

wherein each aggregation profile is defined by the set of characteristics and comprises an aggregate speed and a data transfer count for each of the group of hosts;

wherein the set of characteristics comprises a partial or full Internet Protocol (IP) address, an operating system name associated with a client device.

2. The method of claim 1 , wherein the data transfer event comprises a request to upload the data to a cloud-based environment or a collaboration platform.

3. The method of claim 1 , wherein the data transfer event comprises a request to download the data from a cloud-based environment or a collaboration platform.

4. The method of claim 1 , wherein the selected host is the fastest host among the group of hosts.

5. The method of claim 1 , wherein the selected host is the most reliable host among the group of hosts.

6. The method of claim 1 , wherein the data transfer event originates at the client device.

7. The method of claim 6 , wherein the set of characteristics associated with the data transfer event further comprises a browser name.

8. The method of claim 1 , further comprising: randomly selecting the host from the group of hosts based on weights, wherein each host in the group of hosts is accorded a weight corresponding to the host's aggregate speed.

9. The method of claim 8 , wherein a host having the highest aggregate speed is selected more frequently than a host having the lowest or lower aggregate speed.

10. The method of claim 1 , further comprising: determining a speed with which the data associated with the data transfer event is transferred via the selected host; and updating the aggregation profile corresponding to the set of characteristics associated with the data transfer event.

11. The method of claim 10 , wherein updating the aggregation profile includes updating an aggregate speed and a data transfer count for the selected host.

12. The method of claim 1 , wherein each aggregation profile includes data aggregated from multiple users over a period of time.

13. The method of claim 1 , wherein the plurality of aggregation profiles are stored in a memcache, wherein the data in each of the plurality of aggregation profiles becomes out of date after a period of time.

14. The method of claim 1 , wherein the group of hosts comprises at least two of: an edge server, a content delivery network server or a server hosting a cloud-based collaboration platform where the data associated with the data transfer event is stored or is to be stored.

15. A method of using feedback information to optimize upload performance, comprising:

receiving feedback information regarding a path to upload a file;

uploading the file to one of an array of paths based on the feedback information;

wherein the feedback information is specific to a set of characteristics associated with a client device;

wherein uploading the file to one of an array of paths further comprises:

retrieving an aggregation profile corresponding to the set of characteristics;

wherein the aggregation profile is one of a plurality of aggregation profiles; and

wherein each aggregation profile is defined by the set of characteristics and comprises an aggregate speed and a data transfer count for each of the array of paths;

wherein the set of characteristics comprises a partial or full IP address and an operating system name associated with a client device.

16. A system for enhancing upload performance, comprising:

a memory;

a processor disposed in communication with the memory, and configured to observe upload of files through multiple pathways; and

identify a pathway from the multiple pathways that is fastest for a given set of characteristics;

wherein identifying a pathway from the multiple pathways further comprises:

retrieving an aggregation profile corresponding to the set of characteristics;

wherein the aggregation profile is one of a plurality of aggregation profiles; and

wherein each aggregation profile is defined by the set of characteristics and comprises an aggregate speed and a data transfer count for each of the multiple pathways;

wherein the set of characteristics comprises a partial or full IP address and an operating system name associated with a client device.

17. The system of claim 16 , wherein the upload of files through the multiple pathways originates from multiple client devices, each of which has an associated set of characteristics.

18. The system of claim 16 , wherein the set of characteristics comprises a partial or full Internet Protocol (IP) address, browser information and operating system information.

19. The system of claim 16 , further configured to:

aggregate some of information from the observation into groups,

wherein each group is defined by a set of characteristics, and

wherein the aggregated information is stored in a memcache.

20. The system of claim 19 , wherein the aggregated information stored in the memcache becomes invalid after a period of time.

21. The system of claim 19 , further configured to:

aggregate all of the information from the observation in a persistent datastore, wherein the information in the persistent datastore is used to repopulate the memcache in the event that the aggregated information stored in the memcache is lost.

Assignments (5)
SECURITY INTEREST Recorded Jul 26, 2023
From: BOX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 064389/0686 →
RELEASE OF SECURITY INTEREST Recorded Dec 8, 2015
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: BOX, INC.
Reel/Frame 037237/0503 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER FROM 14308038 AND REPLACE WITH 14304038 PREVIOUSLY RECORDED AT REEL: 034590 FRAME: 0250. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 30, 2014
From: BOX, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 034769/0809 →
PATENT SECURITY AGREEMENT Recorded Dec 9, 2014
From: BOX, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 034590/0250 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2013
From: LUECKE, RYAN; QUEISSER, JEFF; LYONS, JAMES P.
To: BOX, INC.
Reel/Frame 031032/0048 →
Continuity (5)
Provisional Application 61684781 · Aug 19, 2012
Provisional Application 61694466 · Aug 29, 2012
Provisional Application 61702154 · Sep 17, 2012
Provisional Application 61703699 · Sep 20, 2012
Related Publication 20140052825A1 · Feb 20, 2014