[rds-devel] Re: RDS ACKs

Or Gerlitz ogerlitz at voltaire.com
Thu Nov 1 01:09:04 PDT 2007


Zach Brown wrote:
>> So RDS has ACKs, correct? are they in the level of the transport (IB,
>> TCP) or at the RDS level?

> Yes, they're at the level of the transport.  The TCP RDS transport
> derives them from TCP ACKs, it doesn't have explicit messages.  The IB
> transport has explicit messages to indicate to the sender when a given
> message is stable in the receiver's memory.

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?

> This design comes straight from the Oracle DB networking guys.  I'm not
> the best person to defend the design, though I can certainly share my
> understanding of it and how the RDS kernel code is built for it.

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!

Or.





More information about the rds-devel mailing list