Non-blocking buffered inter-machine data transfer with acknowledgment
First Claim
1. A computing system comprising:
- at least one processor; and
one or more storage device having stored computer executable instructions which, when executed by the at least one processor, implement a method that includes the following;
accumulating a plurality of transmission items to send, each transmission item specifying at least one destination machine and at least one set of data to send to each destination machine, wherein the plurality of transmission items include two or more transmission items that specify different destination machines to which they are to be sent, wherein the accumulated transmission items are tracked in a transmission item list;
detecting a send trigger event, and in response, closing the transmission item list and grouping the transmission items in the transmission item list into per-destination data items such that the transmission items are grouped based on the destination machine to which they are to be sent, each per-destination data item identifying a particular destination machine and each set of data to send to the particular destination machine;
associating a unique identifier with each per-destination data item; and
sending a transmission for each per-destination data item to the destination machine identified in that per-destination data item, the transmission comprising the unique identifier associated with that per-destination data item and each set of data corresponding to that per-destination data item.
2 Assignments
0 Petitions
Accused Products
Abstract
A system, method and data structures for transmitting batched data over a network in asynchronous, non-blocking operations, with acknowledgements returned to the senders. Each machine includes a sender subsystem and a receiver subsystem. Transmission items corresponding to data to be sent are buffered until a send is triggered, at which time the transmission items are sorted according to their destinations and sent as a GUID-identified batch to each destination by a send thread. At each receiver, a receiving thread adds descriptions of the data to a receive list, which a transfer thread processes when triggered. The transfer thread sends the corresponding data to a recipient program, and sends GUID-identified acknowledgements corresponding to each GUID back to the originating senders. An acknowledge thread at each originating sender buffers the acknowledgements, and when triggered, a cleanup thread uses the GUID to identify which batched transmissions were received.
-
Citations
12 Claims
-
1. A computing system comprising:
-
at least one processor; and one or more storage device having stored computer executable instructions which, when executed by the at least one processor, implement a method that includes the following; accumulating a plurality of transmission items to send, each transmission item specifying at least one destination machine and at least one set of data to send to each destination machine, wherein the plurality of transmission items include two or more transmission items that specify different destination machines to which they are to be sent, wherein the accumulated transmission items are tracked in a transmission item list; detecting a send trigger event, and in response, closing the transmission item list and grouping the transmission items in the transmission item list into per-destination data items such that the transmission items are grouped based on the destination machine to which they are to be sent, each per-destination data item identifying a particular destination machine and each set of data to send to the particular destination machine; associating a unique identifier with each per-destination data item; and sending a transmission for each per-destination data item to the destination machine identified in that per-destination data item, the transmission comprising the unique identifier associated with that per-destination data item and each set of data corresponding to that per-destination data item. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
Specification