Point of presence based data uploading
First Claim
1. A computer-implemented method for data communication, the computer-implemented method comprising:
- under control of one or more computing devices configured with specific computer executable instructions;
obtaining a request to upload target data from a client computing device to the one or more computing devices;
determining a set of points of presence (POPs) to facilitate uploading of the target data from the client computing device to the one or more computing devices based on performance information associated with the set of POPs, wherein the performance information is maintained by the one or more computing devices based on communications between the set of POPs and the one or more computing devices;
providing routing information regarding the set of POPs to the client computing device, wherein the client computing device transmits fragments of the target data to at least a subset of the set of POPs based, at least in part, on the routing information, and wherein, during fragment transmission, the client computing device adjusts a number of the fragments transmitted to individual POPs in the subset based at least in part on a performance of the individual POPs in the subset;
obtaining the fragments of the target data from the subset of POPs;
merging the fragments of the target data into a copy of the target data; and
causing storage of the copy of the target data.
1 Assignment
0 Petitions
Accused Products
Abstract
A system, method and computer-readable medium for data uploading based on points of presence (POPs) are provided. In response to a client'"'"'s request for data uploading, the system provides routing information for POPs that may facilitate data communications between the client and a data storage service provider. The client may fragment the upload data and transmit the data fragments via data connections to POPs, which in turn may relay the received fragments to the data storage service provider. Upon receipt of necessary data fragments, the data storage service provider may merge the data fragments to reconstruct a copy of the upload data for storage.
1583 Citations
20 Claims
-
1. A computer-implemented method for data communication, the computer-implemented method comprising:
under control of one or more computing devices configured with specific computer executable instructions; obtaining a request to upload target data from a client computing device to the one or more computing devices; determining a set of points of presence (POPs) to facilitate uploading of the target data from the client computing device to the one or more computing devices based on performance information associated with the set of POPs, wherein the performance information is maintained by the one or more computing devices based on communications between the set of POPs and the one or more computing devices; providing routing information regarding the set of POPs to the client computing device, wherein the client computing device transmits fragments of the target data to at least a subset of the set of POPs based, at least in part, on the routing information, and wherein, during fragment transmission, the client computing device adjusts a number of the fragments transmitted to individual POPs in the subset based at least in part on a performance of the individual POPs in the subset; obtaining the fragments of the target data from the subset of POPs; merging the fragments of the target data into a copy of the target data; and causing storage of the copy of the target data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A non-transitory computer readable storage medium storing computer executable instructions that when executed by one or more processors of one or more computing devices perform operations comprising:
-
obtaining a request to upload target data to the one or more computing devices; causing transmission of routing information regarding a set of points of presence (POPs) to a client computing device, wherein the set of POPs are determined based on performance information associated with the set of POPs, wherein the performance information is maintained by the one or more computing devices based on communications between the set of POPs and the one or more computing devices, wherein the client computing device transmits fragments of the target data to at least a first subset of POPs of the set of POPs based, at least in part, on the routing information, and wherein, during fragment transmission, the client computing device adjusts a number of the fragments transmitted to individual POPs in the first subset based at least in part on a performance of the individual POPs in the first subset; obtaining the fragments of the target data from the set of POPs; and causing reconstruction of the target data based, at least in part, on the fragments of the target data. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A system comprising:
-
a data store configured to at least store computer-executable instructions; and a processor in communication with the data store, the processor configured to execute the computer-executable instructions to at least; send a request to upload target data to a data storage service provider; in response to the request, receive routing information regarding a set of points of presence (POPs) determined by the data storage service provider, wherein the set of POPs are determined based on performance information associated with the set of POPs, wherein the performance information is maintained by the data storage service provider based on communications between the set of POPs and the data storage service provider; cause fragmentation of the target data; transmit fragments of the target data resulting from the fragmentation to at least a subset of the set of POPs based, at least in part, on the routing information; and as the fragments are transmitted, adjust a number of the fragments transmitted to individual POPs in the subset based at least in part on a performance of the individual POPs in the subset. - View Dependent Claims (19, 20)
-
Specification