Multi-threaded optimization for data upload
First Claim
1. A method comprising:
- receiving, at a first computing device, a command, from a second computing device, to upload a file to a storage region;
negotiating, with a third computing device, a destination for the file, wherein the destination correlates to a storage location at the storage region;
monitoring, by a processor of the first computing device, upload of a plurality of chunks of the file to ensure in-order receipt of the plurality of chunks by the destination, wherein ensuring in-order receipt of the plurality of chunks comprises;
determining, by the processor, that a threshold portion of a second chunk of the plurality of chunks has been transmitted to the destination prior to upload of an entirety of a first chunk of the plurality of chunks, whereinthe first chunk comprises a beginning portion of the file,the second chunk comprises a portion of the file logically contiguous with the beginning portion of the file, andat least a portion of the first chunk is transmitted to the destination in parallel with at least a portion of the second chunk,responsive to determining that the threshold portion of the second chunk has been transmitted, initiating suspension of upload of the second chunk,determining upload of the entirety of the first chunk has completed, andresponsive to determining upload of the entirety of the first chunk has completed,(a) initiating continuation of upload of the second chunk, and(b) reporting success of upload of the first chunk to the second computing device.
8 Assignments
0 Petitions
Accused Products
Abstract
A method may include receiving, at a first computing device, a command, from a second computing device, to upload a file to a storage region; negotiating, with a third computing device, a destination for the file, where the destination correlates to a storage location at the storage region; monitoring upload of at least a first chunk of the file and a second chunk of the file to the destination, where the first chunk is logically contiguous with the second chunk; determining that a threshold portion of the second chunk has been uploaded prior to upload of an entirety of the first chunk; initiating suspension of upload of the second chunk; determining upload of the entirety of the first chunk has completed; initiating continuation of upload of the second chunk; and reporting success of upload of the first chunk to the second computing device.
-
Citations
20 Claims
-
1. A method comprising:
-
receiving, at a first computing device, a command, from a second computing device, to upload a file to a storage region; negotiating, with a third computing device, a destination for the file, wherein the destination correlates to a storage location at the storage region; monitoring, by a processor of the first computing device, upload of a plurality of chunks of the file to ensure in-order receipt of the plurality of chunks by the destination, wherein ensuring in-order receipt of the plurality of chunks comprises; determining, by the processor, that a threshold portion of a second chunk of the plurality of chunks has been transmitted to the destination prior to upload of an entirety of a first chunk of the plurality of chunks, wherein the first chunk comprises a beginning portion of the file, the second chunk comprises a portion of the file logically contiguous with the beginning portion of the file, and at least a portion of the first chunk is transmitted to the destination in parallel with at least a portion of the second chunk, responsive to determining that the threshold portion of the second chunk has been transmitted, initiating suspension of upload of the second chunk, determining upload of the entirety of the first chunk has completed, and responsive to determining upload of the entirety of the first chunk has completed, (a) initiating continuation of upload of the second chunk, and (b) reporting success of upload of the first chunk to the second computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
a processor; and a memory storing instructions thereon, wherein the instructions when executed cause the processor to; receive, at a first computing device, a command, from a second computing device, to upload a file to a storage region; negotiate, with a third computing device, a destination for the file, wherein the destination correlates to a storage location at the storage region; monitor upload of a plurality of chunks of the file to ensure in-order receipt of the plurality of chunks by the destination, wherein ensuring in-order receipt of the plurality of chunks comprises; determining that a threshold portion of a second chunk of the plurality of chunks has been transmitted to the destination prior to upload of an entirety of a first chunk of the plurality of chunks, wherein the first chunk comprises a beginning portion of the file, the second chunk comprises a portion of the file logically contiguous with the beginning portion of the file, and at least a portion of the first chunk is transmitted to the destination in parallel with at least a portion of the second chunk, after determining that the threshold portion of the second chunk has been transmitted, initiating suspension of upload of the second chunk, determining upload of the entirety of the first chunk has completed, and after determining upload of the entirety of the first chunk has completed, (a) initiating continuation of upload of the second chunk, and (b) reporting success of upload of the first chunk to the second computing device. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A non-transient computer readable medium having instructions stored thereon that, when executed, cause a processor to:
-
receive, at a first computing device, a request, from a second computing device, to upload a file; monitor upload of a plurality of chunks of the file to ensure in-order receipt of the plurality of chunks by a third computing device, wherein ensuring in-order receipt of the plurality of chunks comprises; determining that a threshold portion of a second chunk of the plurality of chunks has been transmitted to the third computing device prior to upload of an entirety of a first chunk of the plurality of chunks, wherein the first chunk comprises a beginning portion of the file, the second chunk comprises a portion of the file logically contiguous with the beginning portion of the file, and at least a portion of the first chunk is transmitted to the destination in parallel with at least a portion of the second chunk, responsive to determining that a threshold portion of the second chunk has been transmitted prior to upload of an entirety of the first chunk, initiating suspension of upload of the second chunk; determine determining receipt of the entirety of the first chunk by the third computing device, and responsive to determining receipt of the entirety of the first chunk, continuing upload of the second chunk, and initiating upload of a third chunk of the plurality of chunks, wherein the third chunk is logically contiguous with the second chunk. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification