Using a Non-Default Reliability Interval
Some situations require a shorter reliability interval, in order to decrease memory requirements. For example:
| • | High-Speed Sender |
Consider a program that sends messages at very high data rates. Using the factory default retention time, the daemon must retain 60 seconds worth of data in its process memory; this volume of data might overwhelm the host computer’s available memory. To reduce the rvd process memory requirement, consider shortening the retention time.
| • | Time-Sensitive Data |
In some programs, data becomes obsolete before 60 seconds elapse. For example, in real-time multi-player game networks, data might become obsolete in less than one second. Retaining and retransmitting obsolete data burdens the daemons and the network without any benefit. A shorter retention time would be more consistent with application requirements, and can improve overall performance.
In some situations, it is not unreasonable to reduce retention time to zero.
Decreasing retention time decreases reliability, and increases the probability of lost data. DATALOSS advisory messages indicate message data lost because the sending daemon no longer retains it.
Zero is a special value for retention time. When the retention time is zero, the sending daemon does not store message data for retransmission (nor does it retransmit packets). Conversely, when the retention time is zero, the receiving daemon does not request that sending daemons retransmit data packets.
Zero is a legal value for a daemon’s -reliability time parameter (see below). However, zero is not a legal value when a client program requests reliability for a specific service (see below).
We strongly discourage increasing the retention time beyond 60 seconds. Memory requirements increase in direct proportion to the retention time. If greater reliability is required, consider using certified delivery features instead (see Certified Message Delivery on page 115 in ).
It is not necessary that all daemons in a network specify the same reliability time. If a sending daemon and a receiving daemon have different reliability intervals, the lower value governs retransmission interactions between the two.
| • | The sender’s actual retention time follows the sender’s reliability interval. |
| • | The receiver requests retransmissions only until the lower value of the reliability interval (either the receiver’s or the sender’s) has elapsed. |
Contrast this rule with the Service Reliability Rule that applies among transports that connect to the same daemon; see below.
The reliability interval affects only the messages within a local network. It does not affect the operation of rvrd as it transfers messages across network boundaries.