[rds-devel] Re: RDS ACKs

Zach Brown zach.brown at oracle.com
Thu Nov 1 13:56:52 PDT 2007


> OK, got it, and thanks for pointing me this difference between TCP to IB
> ACKs. Now, since the RDS IB transport is implemented over IB RC
> transport, my initial thought is that you need not use --any-- software
> timeout mechanism for the reliability you want, this is b/c either the
> message would be delivered to the remote memory or something bad will
> happen. That is the RC QP would move to the error state as of completion
> with error of some work request, etc. So you only need to keep queue of
> non acked messages, remove from the queue ones that were acked, and
> retransmit all of them when you re-connect - am I correct?

Yup.

RDS only drops messages from its send queue when it gets a transport
ack, the sender destroys its sending socket, or the sender calls a
specific setsockopt() call which drops messages to a given destination.
 This last option lets apps destroy messages if they haven't gotten an
application-level ack by some timeout.

> I see. The thing is that there's no requirements document nor
> specification document nor sw design document so you are kind of the
> only source of information for this protocol - thanks for the help!

I would argue that Rick is a more valuable source of info on the
protocol than I am ;).

- z



More information about the rds-devel mailing list