Non-blocking buffered inter-machine data transfer with acknowledgment
First Claim
1. In a computing environment, a system comprising:
- a sender subsystem of a first machine, the sender subsystem receiving a plurality of transmission items wherein at least two of the transmission items are intended for different destination machines, the sender subsystem maintaining a data structure of the transmission items to send, and the sender subsystem including a send mechanism that sends data, wherein the transmission items are tracked by the sender subsystem in a transmission item list, wherein the transmission item list is closed when the sender subsystem detects a send trigger event, and a new transmission item list is created for tracking transmission items that are received after the transmission item list is closed;
a receiver subsystem of each of at least two destination machines configured to receive data from the sender subsystem of the first machine, the receiver subsystem maintaining a receive data structure of information corresponding to data sent by the sender subsystem; and
the sender subsystem configured to detect the send trigger event and to process the transmission items into per-destination data items such that the transmission items are grouped based on the destination machine to which they are to be sent, the send mechanism sending the per-destination data items and corresponding data to the corresponding destination machines, wherein each per-destination data item has a unique identifier associated therewith, and wherein the receiver subsystem returns an acknowledgement corresponding to the received per-destination data item to the sender subsystem, the acknowledgement including the unique identifier.
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.
7 Citations
17 Claims
-
1. In a computing environment, a system comprising:
-
a sender subsystem of a first machine, the sender subsystem receiving a plurality of transmission items wherein at least two of the transmission items are intended for different destination machines, the sender subsystem maintaining a data structure of the transmission items to send, and the sender subsystem including a send mechanism that sends data, wherein the transmission items are tracked by the sender subsystem in a transmission item list, wherein the transmission item list is closed when the sender subsystem detects a send trigger event, and a new transmission item list is created for tracking transmission items that are received after the transmission item list is closed; a receiver subsystem of each of at least two destination machines configured to receive data from the sender subsystem of the first machine, the receiver subsystem maintaining a receive data structure of information corresponding to data sent by the sender subsystem; and the sender subsystem configured to detect the send trigger event and to process the transmission items into per-destination data items such that the transmission items are grouped based on the destination machine to which they are to be sent, the send mechanism sending the per-destination data items and corresponding data to the corresponding destination machines, wherein each per-destination data item has a unique identifier associated therewith, and wherein the receiver subsystem returns an acknowledgement corresponding to the received per-destination data item to the sender subsystem, the acknowledgement including the unique identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. In a computing environment, a method comprising:
-
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, and further creating a new transmission item list for receiving transmission items that are submitted after the send trigger event is detected; associating a unique identifier with each per-destination data item; 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; and receiving an acknowledgement from each destination machine that received the transmission sent thereto, the acknowledgment comprising the unique identifier. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer storage medium having computer-executable instructions, which when executed by a processor of a computer perform steps, comprising:
-
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, and further creating a new transmission item list for receiving transmission items that are submitted after the send trigger event is detected; associating a unique identifier with each per-destination data item; 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; and receiving an acknowledgement from each destination machine that received the transmission sent thereto, the acknowledgment comprising the unique identifier.
-
Specification