[rds-devel] Re: RDS ACKs

Richard Frank richard.frank at oracle.com
Sun Nov 4 09:18:03 PST 2007


<<
I am not sure to follow your last comment: my thinking was that use of 
RDS means that there are --no-- app-level acks and timeouts.
 >>

The RDS driver uses transport acks for HA. That is, the send side driver 
holds onto send buffers until the recv side driver has recv'd them. This 
ensures, that we can resend messages lost due to an HCA failure - via an 
RC formed over a new HCA.

Note, that from the applications perspective - the send completed 
immediately - it's upto the RDS driver to ensure that the message 
arrives at the destination - unless of course the recv side RDS driver 
discovers that the destination (ip:port) are gone - in which case the 
message is dropped.

Or Gerlitz wrote:
> Zach Brown wrote:
>>> ... 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.
>
> Thanks for the clarification.
>
>> 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 am not sure to follow your last comment: my thinking was that use of 
> RDS means that there are --no-- app-level acks and timeouts.
>
> Or.
>
>
> _______________________________________________
> rds-devel mailing list
> rds-devel at oss.oracle.com
> http://oss.oracle.com/mailman/listinfo/rds-devel



More information about the rds-devel mailing list