ATT Labs

An archive of

AT&T Laboratories

hosted in

Cambridge University Computer Laboratory

The Digital Technology Group

Home Page

Collapsed LAN

These pages were last modified 28/6/05.

The Queue

The Queue abstraction is built around a single work queue shared between two communicating endpoints using non-coherent shared memory. As data is written into the Queue, (WRP) pointer updates are also written by the transmitting application into the remote network-mapped memory to indicate the data valid for reading. As data is removed from the Queue, (RDP) pointer updates are written by the receiving application back over the network to indicate free space in the Queue.

These pointer updates are conservative and may lag the reading or writing of data by a short time, but means that a transmitter will not initiate a network transfer of data until buffer space is available at the receiver, and the low latency of the pointer updates means that the amount of Queue buffer space required to support a pair of communicating endpoints is small. The Tripwire mechanism can be used to allow applications to block on full/empty Queues and to manage large numbers of Queues via a Tripwire event stream, which is scalable in terms of CPU usage and response time.

We believe that all these properties are important in a system where there is a large number of user-level network endpoints, supporting applications which may be descheduled for relatively large periods of time.

Please note that the techniques disclosed here have been the subject of patent applications

Contact information
Copyright © 2002 AT&T Laboratories Cambridge