When deploying an RTgms (SmartSockets with SmartPGM), there are two general approaches to rate control. The first approach, and the one recommended for SmartSockets customers, is to establish minimum and maximum rates, and assume RTclients will either keep up, or voluntarily drop out of the group. The second approach uses a technology within SmartPGM known as congestion control to automatically reduce the transmission rate to a level that can be handled by the slowest RTclient. Using congestion control is not generally recommended for SmartSockets customers who prioritize throughput over delivery.
By specifying the pgm_source_max_trans_rate
and pgm_source_min_trans_rate
, you can allocate the bandwidth necessary to send messages to subscribers promptly.
If you are unable to achieve the desired maximum rate, perform these steps:
pgm_source_transmit_size_buffer
* pgm_source_max_trans_rate
) without needing to use virtual memory. When the RTgms is forced to access the hard-disk to facilitate loss repair, performance degrades significantly. It is common for a RTclient to experience small amounts of non-uniform (random) loss during its lifetime. When a RTclient experiences loss it will send a negative acknowledgement (NAK), unless configured otherwise. It is the responsibility of the RTgms to process NAKs. If the RTgms is unable to service a NAK, for whatever reason, the RTclient will suffer un-recoverable loss and the link between it and the RTgms will be gracefully terminated.
Because SmartPGM is a reliable transport protocol, a RTgms makes recovering from loss the priority by default. When faced with loss, a RTgms will prioritize the transmission of repair data (RDATA) over the transmission of original data (ODATA). A consequence of loss in a single RTclient is the increased probability that latency will be introduced to all RTclients connected to same RTgms. As the amount of loss increases, the likelihood of latency also increases.
A RTgms can be configured to reduce the likelihood that latency will be introduced in the presence of loss. pgm_source_transmit_rdata_max_percentage
limits the bandwidth that an RTgms allocates for RDATA as a percent of pgm_source_max_trans_rate
. pgm_source_transmit_rdata_max_percentage
allows the user to shift the priority of SmartPGM from recovery to delivery.
Using pgm_source_max_trans_rate
to shift the priority of SmartPGM from recovery to delivery increases the likelihood that a RTclient experiencing high loss will suffer un-recoverable loss and drop its connection to the RTgms. The decision to use pgm_source_max_trans_rate
represents a trade-off between reliability and timely delivery.
Using SmartPGM congestion control, RTgms regulates the transmission rate to accommodate the poorest performing RTclient in the multicast group. When an RTclient sends a negative acknowledgement (NAK), the RTgms reduces the transmission rate until the RTclient catches up and sends an acknowledgement (ACK). After receiving the ACK, the RTgms increases the rate to the specified maximum rate until the RTgms receives another NAK from an RTclient.
TIBCO SmartSockets™ User’s Guide Software Release 6.8, July 2006 Copyright © TIBCO Software Inc. All rights reserved www.tibco.com |