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 maintaining a data structure of transmission items to send, and a send mechanism that sends data;
a receiver subsystem of a second machine 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 a send trigger event and to process the transmission items into per-destination data items, the send mechanism sending the per-destination data items and corresponding data to destination machines, including a selected data item and its corresponding data to the receiver subsystem of the second machine.
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
20 Claims
-
1. In a computing environment, a system comprising:
-
a sender subsystem of a first machine, the sender subsystem maintaining a data structure of transmission items to send, and a send mechanism that sends data;
a receiver subsystem of a second machine 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 a send trigger event and to process the transmission items into per-destination data items, the send mechanism sending the per-destination data items and corresponding data to destination machines, including a selected data item and its corresponding data to the receiver subsystem of the second machine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 11)
-
-
10. The system of claim 21 wherein the cleanup mechanism operates in response to a cleanup trigger event corresponding to a time limit being reached, a threshold amount of data being achieved, or a priority level being detected, or any combination of a time limit being reached, a threshold amount of data being achieved, or a priority level being detected.
-
12. In a computing environment, a method comprising:
-
accumulating 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;
detecting a send trigger event, and in response, processing the transmission items into per-destination data items, each per-destination data item identifying each set of data to send to a destination machine;
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 (13, 16, 17, 18, 19)
-
-
14. The method of claim 32 further comprising receiving at least two transmission items in a single call from a data generator.
-
15. The method of claim 32 wherein detecting the send trigger event includes testing for the send trigger event, and wherein testing for the send trigger event comprises a) determining whether a time limit is reached, b) determining whether a threshold amount of data is achieved or c) determining whether a transmission item indicates that at least part of its corresponding data comprises high-priority data, or any combination of a), b) or c) or a), b) and c).
-
20. A computer-readable medium having computer-executable instructions, which when executed perform steps, comprising:
-
detecting a send trigger event;
sorting a plurality of data items to send to a plurality of destination receivers based on destination information associated with each data item;
sending each of the data items to its associated destination receiver, including batching any data items for transmission that are associated with a common destination receiver; and
receiving an acknowledgement from each destination receiver that received the transmission sent thereto.
-
Specification