Accelerated data transfer using thread pool for parallel operations
AssigneeTransfersoft, Inc.
InventorAttila Mark SZILAGYI
Life of this patent
Estimating the term…
Abstract
A method, an apparatus, and a computer program product for accelerating network data transfer are provided. In one aspect, a plurality of data streams are received at a local host, combined into a single stream and divided into fragments including one or more segments. The fragments are each stored in buffers and processed in parallel by a plurality of worker threads. Each fragment is encoded and packetized into a data packet. The data packets are transmitted over a network to a remote host as a plurality of parallel data streams over at least one data link. As buffer locations become available, additional fragments are stored in the buffer and processed on a substantially ongoing basis for transmission over the network.
Claims60
An apparatus for transferring data;
- comprising:
- a memory having code stored therein;
- and
- a processor coupled to the memory and configured to run the code as a plurality of threads of execution, wherein
- the processor is configured to use the threads to read a plurality of data streams from at least one external source, combine the data streams into a single stream, divide the single stream into fragments, process each of the fragments in parallel to produce a corresponding data packet, and output the data packets as a plurality of parallel data streams for transmission by a transceiver over a network to a remote host.
A method of transferring data;
- comprising:
- reading a plurality of data streams from at least one external source;
- combining the data streams into a single stream;
- dividing the single stream into fragments;
- processing each of the fragments in parallel to produce a corresponding data packet;
- and
- transmitting the data packets as a plurality of parallel data streams over a network to a remote host.
An apparatus for transferring data;
- comprising:
- a processing system configured to run code stored in a memory of the processing system as a plurality of threads of execution, use the threads to read a plurality of data streams from at least one external source, combine the data streams into a single stream, divide the single stream into fragments, process each of the fragments in parallel to produce a corresponding data packet, and output the data packets as a plurality of parallel data streams for transmission by a transceiver over a network to a remote host.
A computer program product comprising a non-transitory computer-readable medium having computer executable code for:
- reading a plurality of data streams from at least one external source;
- combining the data streams into a single stream;
- dividing the single stream into fragments;
- processing each of the fragments in parallel to produce a corresponding data packet;
- and
- outputting the data packets as a plurality of parallel data streams for transmission over a network to a remote host.
Dependencies are inferred from the claim text.