[rds-devel] So what is RDS congestion ?

Or Gerlitz ogerlitz at voltaire.com
Thu Dec 6 04:24:25 PST 2007


Hi Rick, Olaf,

Can you take a look on my comments/questions below?

thanks,

Or.

Or Gerlitz wrote:
> Richard Frank wrote:
>> When an application is recving RDS messages, they are queued at the 
>> socket. If the application is not draining these messages promptly 
>> then they may queue at the socket up until so_rcvbuf limit is reached. 
>> If so_rcvbuf limit is reached RDS sends a back pressure message 
>> (congestion update) to the RDS sender node informing it to back 
>> pressure sends to the specific destination. When an RDS sender 
>> attempts to send to a congested recv socket the sender is back 
>> pressured via eagain.
> 
>>> Richard Frank wrote:
>>> Re: [rds-devel] RDS IB transport software flow control?
>>> Memory consumption is bounded by so_sndbuf + so_rcvbuf * number of 
>>> active endpoints.
> 
> Olaf, Rick (Hi, I'm trying to get back on track)
> 
> I understand that RDS/IB is using one QP per --ip-- (outgoing and 
> incoming) destination address. So there is 1:N mapping between a QP 
> which may be used by many RDS sockets with different <src,dst> port 
> combinations, but same <src,dst> ip signature, correct?
> 
> If yes, then generally speaking, there are two levels of buffer 
> management to handle: the QP level, and the socket level.
> 
>  From reading Rick's FAQ piece and looking on the discussion you held 
> over the "RDS IB transport software flow control" thread, I could not 
> realize what is the design.
> 
> Does the code just computes as in the equation above and posts into the 
> QP the additive sum of all the sockets that use it?
> 
>> A back pressured sender can either issue a blocking send and wait for 
>> can wait in poll with pollin. When the recv socket is un-congested - 
>> due to the process pulling off messages, a congestion update message 
>> is sent to nodes with back pressured senders which results in waking 
>> poll waiters with pollin.
> 
> probably a newbie question: why not use pollout?
> 
> 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