J. Hill
Overview
Introduction LANSCE Requirements EPICS Event Queue Event Queue Upgrade Milestones
LANSCE Requirements
LANSCE timing and flavoring of data Flavoring
Logical configuration of beam gates Timing
Time sampling (single element) within a beam pulse
Many permutations Too many to, a priori, install records for all of
them Channel Access client must somehow specify
timing and flavoring when it subscribes
EPICS Fundamentals
Channels and Process Variables Channel is virtual communication link to
process variable We can perform read, write, and subscribe
operations over a channel
Publish and Subscribe Clients subscribe for updates Servers publish updates to multiple clients Records post state change events to
servers
EPICS Event Queue – A Pivotal Component
Tying high priority deterministically scheduled activities to the low priority load non-deterministic server component The event queue guarntees that this
value/alarm status/time stamp tuple are consistent
It is essential that we minimize what impact client induced load has on record processing threads
EPICS Event Queue – Theory of Operation
Records execute at relatively high priority, server executes at relatively low priority Record processing never blocks for slow clients
Record is producer and client is consumer Sever production rate might exceed consumption rate of
client or network – queuing system needs to serve dual purposes Burst
Attempts to avoid discarding updates Sustained
Keep subscriptions current Intentionally discard intermediate updates Do not introduce time delays
Current Event Queue is Quite Inflexible The only parameters that can be correlated
together in time with any surety over Channel Access are Scalar Value, Time Stamp, Alarm Status
The exception - after the fact correlation using the time stamp
This is very inflexible It does not allow clients to specify their data capture
constraints Array value change events are not recorded on the event
queue It doesn’t allow for on the fly application driven
experiments needed at LANSCE
Event Queue Upgrade
CA ServerCA ServerRecordRecord
Event Queue
Legacy Fixed Event
Parameter Set
Scalar ValueTime StampAlarm Status
Legacy Fixed Event
Parameter Set
Scalar ValueTime StampAlarm Status
Upgraded Record Specific Event Parameter Set
Scalar or Vector Value
Time StampAlarm Status
…
Upgraded Record Specific Event Parameter Set
Scalar or Vector Value
Time StampAlarm Status
…
Upgraded Device Specific Event Parameter Set
LANSCE Beam Gate Specification
Upgraded Device Specific Event Parameter Set
LANSCE Beam Gate Specification
Event Queue Memory Management Smart Pointers to Data Access
Interfaced Objects Reference counted
Increments when smart pointer is copied Decrements when smart pointer is destroyed Release callback when count decrements to
zero
Memory Management Handled by event posting agent Can be free list based
Event Filter Upgrade
RecordRecord
Event Queue
Event Filter
Discard
Event Filter Expression
value < 10.0 and
value > log ( currentMonitor0007.current ) and
requireFlavor ( beamGateA | beamGateB ) and
excludeFlavor ( beamGateC )
Event Filter Expression
value < 10.0 and
value > log ( currentMonitor0007.current ) and
requireFlavor ( beamGateA | beamGateB ) and
excludeFlavor ( beamGateC )
TCP Circuit
Event Filter Implementation Could be based on the same library
that the calc record uses Would prefer however to base expressions
on property names instead of {A, B, C, ..} as is currently the case with the CALC library
Many mainstream open source alternatives
Event Filter Upgrade
Client LibraryClient Library Server LibraryServer Library Event Filter
Moderate Interface Upgrade
Moderate Interface Upgrade
Moderate Subscription Protocol Upgrade
Moderate Subscription Protocol Upgrade
Array Index Metadata
Magnitude of zero-eth element index Floating point
Magnitude of one index increment Floating point
Units of these magnitudes String
Data Access Interfaces for DBR Types
CA Type Code
DBR_CHAR
DBR_SHORT
DBR_ENUM
DBR_LONG
DBR_FLOAT
DBR_DOUBLE
DBR_STRING
DBR_STS_<PRIMITIVE TYPE>
DBR_TIME_<PRIMITIVE TYPE>
DBR_GR_<PRIMITIVE TYPE>
DBR_CTRL_<PRIMITIVE TYPE>
DBR_PUT_ACKT
DBR_PUT_ACKS
DBR_STSACK_STRING
DBR_CLASS_NAME
Data Access Interfacing Adapter
Data Access Interfacing Adapter
Segmented Protocol Buffer
In R3.13 Fixed 16KB protocol buffer limited array size
In R3.14 Two protocol buffer sizes
Fixed 16KB protocol buffers EPICS_CA_MAX_ARRAY_BYTES protocol buffers
In R3.15 Segmented protocol buffer
Based on free list of fixed sized buffers Improved memory management
In R3.14 two large EPICS_CA_MAX_ARRAY_BYTES protocol buffers dedicated to each client even if they are not currently using them
Potentially no array size limits But, perhaps EPICS_CA_MAX_ARRAY_BYTES
Defines a quota, but with a large default value
Server Implementation Consolidation
rsrvrsrv
databasedatabasedbAccess snap-indbAccess snap-in
portable server
portable server upgrade
d Data Access based
interface
upgraded Data Access based
interface
LANSCE Capable Waveform Record
LANSCE Capable RecordLANSCE Capable Record
Upgraded Event Queue
Ordinary RecordOrdinary Record
Upgraded Event Queue
LANSCE Specific Device SupportLANSCE Specific Device Support
Ordinary Device SupportOrdinary Device Support
Legacy db_post_events
interface
Legacy db_post_events
interface
Data Access based event posting
interface
Data Access based event posting
interface
Legacy device suppor
t interfa
ce
Legacy device suppor
t interfa
ce
Data Access based device
Support interface
Data Access based device
Support interface
Data Access based event posting
interface
Data Access based event posting
interface
Internal Design Review
Interface Description
Retrofit Portable Server to
New Interface
LANSCE Specific Waveform Record
Service Snap in for dbAccess
Subscription Update Filter
Data Access to DBR_XXX
Data AccessClose Out
Retrofit Event Queue to New
Interface
MilestonesMilestones
Benefits for LANSCE
LANSCE style dynamic on-the-fly ad-hoc beam flavoring and beam timing experiments But, in homogenous EPICS system
Tool based approach to LANSCE applications Applications have abstract model of hardware Incremental upgrades possible
Multi-element “Timed” data COTS digitizer Window in time selected
Benefits for EPICS Community Flexible event snapshots
Parameters other than alarm status, time stamp, scalar value correlated on event queue
Arrays correlated on event queue with other parameters
Subscription update filtering Expression (string) based means
Project and site independent – tool based approach Minimally invasive for existing client side tools
Array index meta data Expanding intersection of EPICS with data
acquisition systems
Top Related