[rds-devel] So what is RDS congestion ?

Richard Frank richard.frank at oracle.com
Wed Nov 14 18:46:52 PST 2007


So what is RDS congestion ?

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.

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.




More information about the rds-devel mailing list