[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