20
J. Hill

J. Hill. Overview Introduction LANSCE Requirements EPICS Event Queue Event Queue Upgrade Milestones

Embed Size (px)

Citation preview

Page 1: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

J. Hill

Page 2: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

Overview

Introduction LANSCE Requirements EPICS Event Queue Event Queue Upgrade Milestones

Page 3: 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

Page 4: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 5: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 6: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 7: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 8: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 9: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 10: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 11: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 12: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 13: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

Array Index Metadata

Magnitude of zero-eth element index Floating point

Magnitude of one index increment Floating point

Units of these magnitudes String

Page 14: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 15: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 16: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

Server Implementation Consolidation

rsrvrsrv

databasedatabasedbAccess snap-indbAccess snap-in

portable server

portable server upgrade

d Data Access based

interface

upgraded Data Access based

interface

Page 17: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 18: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 19: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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

Page 20: J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones

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