Scenario Timeline: LBT-RM Source Stops Sending
Reliable multicast protocols like LBT-RM rely on sequence numbers and the arrival of data after a loss as evidence that the loss happened. What would happen if the last packet sent by a source was lost? How would receivers learn of the loss if no further messages were sent?
LBT-RM generates session messages when the sources on a transport session stop sending. These messages contain the expected last sequence number for the session so that receivers can detect loss even when sources aren't sending. Session messages also help to maintain state in multicast routers and switches that require regular traffic to prevent the reclamation of unused forwarding entries.
The following timeline illustrates the case where an LBT-RM source stops sending.
No session messages are generated as long as the interval between lbm_src_send()
calls that generate writes to LBT-RM is less than
transport_lbtrm_sm_minimum_interval
. The interval between
session messages starts at transport_lbtrm_sm_minimum_interval
and doubles till it
reaches transport_lbtrm_sm_maximum_interval
.
Scenario Timeline: Receiver Detects End of LBT-RM Session
The absence of activity on a transport session is the only indication receivers get
that a source is gone or no longer available through any network path. LBT-RM receivers
reset a session activity timer for each data message or session message that arrives. If
the activity timer ever expires, all receivers on the transport session receive an LBM_MSG_EOS
event. This is illustrated in the following
timeline:
The activity timer is controlled with the transport_lbtrm_activity_timeout
option.
For LBT-RM sessions only. The maximum time that an LBT-RM session may be quiescent before it is deleted and an EOS event is delivered for all topics using this transport session. This option affects the transport session underlying the receiver rather than the receiver itself. The transport session uses the value from the first receiver created on the session and ignores subsequent receivers. Refer to Receiver Configuration and Transport Sessions for additional information.
The threshold of the maximum number of individual messages that are copied into a single buffer before being sent to the LBT-RM source internals. When used with small messages, this allows LBT-RM to use less memory at the expense of an additional copy operation of the data before being sent. The default value is also the maximum allowable value for Solaris and AIX. For Linux and Microsoft® Windows®, the maximum allowable value is 1023. This option affects the transport session underlying the source rather than the source itself. The transport session uses the value from the first source created on the session and ignores subsequent sources. Refer to Source Configuration and Transport Sessions for additional information.
Maximum aggregate transmission rate of all LBT-RM sessions' original data plus retransmissions for this particular context.
The maximum datagram size that can be generated for a LBT-RM transport session. The default value is 8192, the minimum is 500 bytes, and the maximum is 65535.
Use this option only if the receiver subscribes to a pre-LBM 3.3 source or if you have turned off TSNI messages in your post-LBM 3.3 implementation. Set it high enough so the source starts sending data messages before the timeout expires. This timeout begins when the receiver receives a topic advertisement. Pre-LBM 3.3 sources do not send TSNI messages which in effect inform receivers that the source is alive even though it has not started sending data. Session messages provide the same information but do not begin until after the source has started sending data. This option provides an additional activity timeout for the receiver that does not rely on TSNI or sessions messages. The default value of 0 (zero) essentially disables this option, giving precedence to the receiver's standard activity timeout. This option affects the transport session underlying the receiver rather than the receiver itself. The transport session uses the value from the first receiver created on the session and ignores subsequent receivers. Refer to Receiver Configuration and Transport Sessions for additional information.
Period that LBT-RM rate limiter runs. Reducing period reduces burst intensity, but also increases CPU load.
Scope: | context |
Type: | lbm_ulong_t |
Units: | milliseconds |
Default value: | 100 |
When to Set: | Can only be set during object initialization. |
String value | Integer value | Description |
---|---|---|
"10" (Integer value as a string.) |
10 |
LBT-RM rate limiter runs every 10 milliseconds. |
"20" (Integer value as a string.) |
20 |
LBT-RM rate limiter runs every 20 milliseconds. |
"50" (Integer value as a string.) |
50 |
LBT-RM rate limiter runs every 50 milliseconds. |
"100" (Integer value as a string.) |
100 |
LBT-RM rate limiter runs every 100 milliseconds. Default for all. |
Maximum aggregate transmission rate of all LBT-RM sessions' retransmissions for this particular context. This should always be less than the value used for original data.
The maximum interval between LBT-RM session messages. In lieu of data being sent, LBT-RM sends session messages to inform receivers of sequence numbers and to let receivers know that the sender is still transmitting. This option affects the transport session underlying the source rather than the source itself. The transport session uses the value from the first source created on the session and ignores subsequent sources. Refer to Source Configuration and Transport Sessions for additional information.
The minimum interval between LBT-RM session messages. In lieu of data being sent, LBT-RM sends session messages to inform receivers of sequence numbers and to let receivers know that the sender is still transmitting. This option affects the transport session underlying the source rather than the source itself. The transport session uses the value from the first source created on the session and ignores subsequent sources. Refer to Source Configuration and Transport Sessions for additional information.
The transmission group size used for this Topic when LBT-RM is used. This value must be greater than 0 and must be a power of 2 no greater than 32K. This option affects the transport session underlying the source rather than the source itself. The transport session uses the value from the first source created on the session and ignores subsequent sources. Refer to Source Configuration and Transport Sessions for additional information.
Copyright (c) 2004 - 2014 Informatica Corporation. All rights reserved.