[rds-devel] RDS ACKs
Or Gerlitz
ogerlitz at voltaire.com
Wed Oct 31 07:28:00 PDT 2007
Hi Zach,
Looking on the RDS sources, I see the following comment:
> * You'd think that with reliable IB connections you wouldn't need to ack
> * messages that have been received. The problem is that IB hardware generates
> * an ack message before it has DMAed the message into memory. This creates a
> * potential message loss if the HCA is disabled for any reason between when it
> * sends the ack and before the message is DMAed and processed. This is only a
> * potential issue if another HCA is available for fail-over.
So RDS has ACKs, correct? are they in the level of the transport (IB,
TCP) or at the RDS level? If its in the transport, then I wanted to
check with you first that the ACKs used by the IB code are --not-- for
the sole purpose of software flow control, correct? As Roland and other
have commented in the past, this problem is not unique to IB RC
programming, for example TCP also sends the ACK before the app consumes
the data from the socket or in Roland's words:
> I think you just have to deal with this possibility at your level.
> This type of thing is just inherent in network programming: without an
> explicit message back, you don't know if any given message has really
> been received. The exact same thing could happen with TCP for
> example: just cut the cable after a message has been received but
> before the ACK has gone back the other way.
where this is the related thread
http://lists.openfabrics.org/pipermail/general/2007-October/042398.html
Are ACKs sent before the app consumed the data from the socket or after it?
Or.
More information about the rds-devel
mailing list