controls group new channel access nameserver joan sage 12/4/01

Post on 16-Dec-2015

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Controls GroupControls Group

New Channel Access Nameserver

Joan Sage

12/4/01

Controls GroupControls Group

Overview

• Background

• Motivation

• Old JLab Nameserver

• New JLab Nameserver

• Results

Controls GroupControls Group

Background

• By default, EPICS does not use a nameserver

• Process variable name resolution achieved via UDP broadcasts

• JLab has used a cdev based nameserver for BURT and MEDM clients for several years

Controls GroupControls Group

EPICS PV Name Resolution

IOC

IOC

IOC

IOC

Client

BroadcastTCP Connection

Controls GroupControls Group

Why Use A Nameserver?

• Reduce IOC CPU load due to broadcast requests for name resolution

• Provide PV location information for tools that do not require connection

• Improve client connection time

Controls GroupControls Group

Why A New JLab Nameserver?

• Old JLab Nameserver – Integration with client programs required code

changes and recompilation– Required changes to Channel Access Library

• Because of these difficulties, the old nameserver was only used with BURT and MEDM

Controls GroupControls Group

New 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 to the IP Address of the Nameserver host and by setting EPICS_CA_AUTO_ADDR_LIST to NO

Controls GroupControls Group

New Nameserver

• 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

Controls GroupControls Group

New Nameserver

• Built on PCAS example code – directoryServer (Jeff Hill’s suggestion)

• pvExistTest reimplemented

• Heartbeat CA monitors for each IOC

Controls GroupControls Group

New Nameserver

• Runs as a daemon with automatic restart on failure (code stolen from CA Gateway)

• Nameserver Startup Time < 5 sec for 250K PVs

Controls GroupControls Group

New Nameserver

• Nameserver monitors IOC heartbeat for connection events

• When an IOC goes down– 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

Controls GroupControls Group

New Nameserver

NS

Client

IOC

IOC

IOC

IOC

BroadcastTCP Connection

Fallthrough*

*Nameserver Hash Table IS Updated

Controls GroupControls Group

Results

• Tested name resolution and connection 10,465 PVs on 36 IOCs Max 300 PVs/IOC

• Without Nameserver – 4.39 sec

• With New Nameserver – 2.18 sec

• Being used successfully for Jlab operations for 3 months

Controls GroupControls Group

Side Effects

• An extra computer is required to run the Nameserver

• Central “database” – Allows generation of a list of PVs that never

resolve– Allows identification of duplicate PVs

top related