CA client library should use multiple search timers?
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
EPICS Base |
Fix Released
|
Wishlist
|
Jeff Hill |
Bug Description
There are certain CA client applications that have very large numbers of channels, run continuously, periodically add new channels, but may have significant numbers of unresolved channels. Examples may include the SNS archiver and control room MEDMs at the APS.
Currently, whenever a new channel is created, the CA client library resets the search interval to the estimated round trip time or 60 mS - whichever is longer. If there is not a successful search response then this interval is doubled when the last channel in the list is reached. The search interval therefore exponentially backs off when there are no successful search responses.
However, when there are many unresolved channels this may not be optimal because we will see additional traffic for channels that are unresolved each time that a new channel is created.
A potential solution would be to implement multiple search timers for each rate along the exponential backoff curve. We would install new channels into the fastest timer and move them down the curve, from timer to timer, until they reach the slowest timer when there is no response. This would keep old unresolved channels from being searched for at the rate that is needed by new channels. The new timer library in R3.14 would make this approach reasonably easy to implement.
Original Mantis Bug: mantis-128
http://
fixed in R3.14.7