110 likes | 130 Views
Jefferson Lab Channel Access Nameserver. Talk by Karen White WORK by Joan Sage. Background. By default, EPICS does not use a nameserver All process variable name resolution achieved via UDP broadcasts to all IOCs. Why Did We Want a Nameserver?.
E N D
Jefferson LabChannel Access Nameserver Talk by Karen White WORK by Joan Sage EPICS Collaboration Meeting June 20, 2003
Background • By default, EPICS does not use a nameserver • All process variable name resolution achieved via UDP broadcasts to all IOCs EPICS Collaboration Meeting June 20, 2003
Why Did We Want a Nameserver? • Reduce IOC CPU load and network traffic due to broadcast requests for name resolution • Provide PV location information for tools that do not require connection • Improve client connection time • Protect IOCs from loading caused by poorly written clients • Simplify some Control System management and access functions EPICS Collaboration Meeting June 20, 2003
Why Replace our cdev Nameserver? • Old JLab Nameserver • Integration with client programs required code changes and recompilation • Required changes to Channel Access Library • Did not learn about “new” PVs • Because of these difficulties, only BURT and MEDM (the most frequent UDP broadcasters) were ever modified to use the old Nameserver EPICS Collaboration Meeting June 20, 2003
New CA Nameserver • No modifications needed to client code • No modifications to Channel Access Library • Client programs are configured to use nameserver by setting EPICS_CA_ADDR_LIST • Created a simple script to turn Nameserver usage on and off for all programs initiated from a single operator console EPICS Collaboration Meeting June 20, 2003
New Nameserver - Startup • Nameserver reads signal.list files generated by IOCs at boot time to fill initial hash table • Nameserver “learns” about PVs added to the system after startup by broadcasting to fill unknown PV requests • Runs as a daemon with automatic restart in case of failure • Startup time < 5 sec (287,000 PVs) EPICS Collaboration Meeting June 20, 2003
New Nameserver – IOC Reboots • Nameserver monitors IOC heartbeat for connection events • When an IOC goes down • Nameserver hashtable updated • Nameserver monitors for reconnection events • Nameserver does not respond to clients asking for PVs on IOCS that are down • Deleted and moved PVs are automatically handled EPICS Collaboration Meeting June 20, 2003
Without Nameserver EPICS Collaboration Meeting June 20, 2003
With Nameserver EPICS Collaboration Meeting June 20, 2003
New Nameserver Results • Tested name resolution and connection - time to startup, resolving all names for an medm panel with > 3000 PVs • Without Nameserver – 4.39 seconds • With New Nameserver – 2.18 seconds • Nameserver has been used operationally for 1.5 years without any problems • Routinely handles over 6 million requests per day EPICS Collaboration Meeting June 20, 2003
Nameserver & Gateways Hall Client Acc Client GW1 GW2 NS Hall IOC Acc IOC Hall IOC Hall IOC Acc IOC Acc IOC UDP Broadcast UDP Send TCP Connection EPICS Collaboration Meeting June 20, 2003