Jeff Hill. Next Gen CA Server – Overview  LANSCE Requirements a Review  Server Design Fundamentals a Review  Demo  Data Access – a Review and Recent.

Slides:



Advertisements
Similar presentations
Pointers.
Advertisements

Lists and the Collection Interface Chapter 4. Chapter Objectives To become familiar with the List interface To understand how to write an array-based.
Chapter 10: Designing Databases
1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
EPICS Base R and beyond Andrew Johnson Computer Scientist, AES Controls Group.
Channel Access Enhancements J. Hill. R3.14 Enhancements Large array support in the portable server –nearly complete –a priority for SNS Port syntax for.
Module R2 Overview. Process queues As processes enter the system and transition from state to state, they are stored queues. There may be many different.
Jeffrey O. Hill LANSCE / LANL.  Requirements, a review  Design, a review  Application Programming Interface (API)  Status  Benefits, a review.
Jeffrey Hill.  LANSCE Requirements – a Review  EPICS Paradigm Shift – a Review  Status – What is Implemented  What is an Abstract Data Type?  Benefits.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
Using DSVM to Implement a Distributed File System Ramon Lawrence Dept. of Computer Science
Chapter 10.
Iterators T.J. Niglio Computer & Systems Engineering Fall 2003 Software Design & Documentation Object Behavioral.
G. Levine Chapter 6 Chapter 6 Encapsulation –Why do we want encapsulation? Programmer friendliness- programmer need not know about these details –Easier.
CS 104 Introduction to Computer Science and Graphics Problems
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
1.1 CAS CS 460/660 Introduction to Database Systems File Organization Slides from UC Berkeley.
V4 – Executive Summary 1.Provide online add/delete of I/O to support continuous operation. 2.Provide redundant control of remote I/O to support improved.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2008 Pearson Education, Inc., Upper.
Jeffrey O. Hill LANSCE / LANL. Requirements, a Review Design, a Review Design Changes Status, this project and others Lessons Learned Benefits, a Review.
Obsydian OLE Automation Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.
Data Structures Using C++ 2E
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 122 – Data Structures Custom Templatized Data Structures.
History Server & API Christopher Larrieu Jefferson Laboratory.
Module 7: Fundamentals of Administering Windows Server 2008.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
J. Hill. Overview  Introduction  LANSCE Requirements  EPICS Event Queue  Event Queue Upgrade  Milestones.
Chapter 3 Process Description and Control
© 2008 IBM Corporation ® IBM Cognos Business Viewpoint Miguel Garcia - Solutions Architect.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
E FFECTIVE C# 50 Specific Ways to Improve Your C# Second Edition Bill Wagner محمد حسین سلطانی.
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
Copyright © Curt Hill Generic Classes Template Classes or Container Classes.
3.14 Work List IOC Core Channel Access. Changes to IOC Core Online add/delete of record instances Tool to support online add/delete OS independent layer.
SNS Integrated Control System Timing Clients at SNS DH Thompson Epics Spring 2003.
Chapter 2 Processes and Threads Introduction 2.2 Processes A Process is the execution of a Program More specifically… – A process is a program.
ECE 264 Object-Oriented Software Development Instructor: Dr. Honggang Wang Spring 2013 Lecture 19: Exam 3 Preview.
Jeff Hill.  LANSCE Requirements – a Review  EPICS Paradigm Shift  Magic Pipes  Data Access, is it Easy CA?  Database CA Service  Server Upgrades.
DATABASE MANAGEMENT SYSTEM ARCHITECTURE
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
Standard Template Library The Standard Template Library was recently added to standard C++. –The STL contains generic template classes. –The STL permits.
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
EPICS EPICS Limitations Bob Dalesio Marty Kraimer.
EPICS Release 3.15 Bob Dalesio May 19, Features for 3.15 Support for large arrays - done for rsrv in 3.14 Channel access priorities - planned to.
CE Operating Systems Lecture 17 File systems – interface and implementation.
EPICS Release 3.15 Bob Dalesio May 19, Features for 3.15 Support for large arrays Channel access priorities Portable server replacement of rsrv.
CSCI-383 Object-Oriented Programming & Design Lecture 25.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
ECE 264 Object-Oriented Software Development
Control System Overview J. Frederick Bartlett Fermilab June 1,1999.
Building Preservation Environments with Data Grid Technology Reagan W. Moore Presenter: Praveen Namburi.
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
CMSC 202 Computer Science II for Majors. CMSC 202UMBC Topics Templates Linked Lists.
Advanced Operating Systems CS6025 Spring 2016 Processes and Threads (Chapter 2)
Chapter 3 Data Representation
Databases and DBMSs Todd S. Bacastow January 2005.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Realizing Concurrency using Posix Threads (pthreads)
Data, Databases, and DBMSs
Introduction to Databases Transparencies
Introduction to Database Systems
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
Threads Chapter 4.
Database Design Hacettepe University
Realizing Concurrency using Posix Threads (pthreads)
Realizing Concurrency using Posix Threads (pthreads)
The Lua Chunk Vault, an enhancement to epics base
Presentation transcript:

Jeff Hill

Next Gen CA Server – Overview  LANSCE Requirements a Review  Server Design Fundamentals a Review  Demo  Data Access – a Review and Recent Changes  Status, benefits

Next Gen CA Server – LANSCE Requirements  LANSCE timing and flavoring of data Flavoring ○ Selection based on - logical combinatorial of beam gates Timing ○ Selection based on - time sampling (single element) within a beam pulse  Many permutations Too many to, a-priori, install records for all of them Need LANSCE timing and flavoring specific subscription update filtering

Next Gen CA Server – LANSCE Requirements  LANSCE timed data requires Array Index Metadata Magnitude of zero-eth element index ○ Floating point Magnitude of one index increment ○ Floating point Units of these magnitudes ○ String

Next Gen CA Server – Design Choices  Channel Access client must  specify LANSCE timing, flavoring needed when subscribing  Channel Access service must  tag the data with LANSCE timing, flavoring attributes  Channel Access server must  Appropriately filter subscription updates  but … This must be done in a generic way to allow parallel capabilities at other EPICS installations Minimal to no impact on performance if the client does not request a filtered update stream Within the IOC, record processing must not be disturbed by filtering activities in the server

Next Gen CA Server– Design Fundamentals  Event Queue – bridging the gap between two independent processing domains Service processing (i.e. Record processing) ○ CPU Load is very predictable ○ Deterministically scheduled, tightly synchronized to external events ○ Must run at higher priority than the server components Client induced server load ○ CPU Load is very unpredictable ○ Non-deterministically scheduled, loosely synchronized to external events ○ Must run in low priority components of the server

Next Generation CA Server – Design Fundamentals  Event Queue – bridging the gap between two independent processing universes Clients read their input queues at very different rates ○ Therefore each client attaching to the server must be serviced off of a private event queue Server production rate can exceed client consumption rate ○ Buffering allows event sequences to be preserved over bursts of service activity ○ Health of IOC requires that buffering capacity must be strictly limited ○ During queue satuturation we have event replacement

Demo >camonitor fred fred :05: fred :05: fred :05:

Demo >camonitor "fred$F $(PV:)>30 && $(PV)<40" fred$F $(PV:)>30 && $(PV)< :58: fred$F $(PV:)>30 && $(PV)< :58: fred$F $(PV:)>30 && $(PV)< :58: fred$F $(PV:)>30 && $(PV)< :58: fred$F $(PV:)>30 && $(PV)< :58: fred$F $(PV:)>30 && $(PV)< :58:

Demo >camonitor "fred$F $(PV:flavor)==30 " fred$F $(PV:flavor)== :58: fred$F $(PV:flavor)== :58: fred$F $(PV:flavor)== :58: fred$F $(PV:flavor)== :58: fred$F $(PV:flavor)== :58:

Next Generation CA Server – Data Access  Catalog, an introspection interface – implemented by data publisher class CatalogTelesopeCoordinate : public Catalog { … }; void CatalogTelesopeCoordinate :: traverse ( Analyst & a ) const { publish ( a, pi_rightAscension, m_refTC.m_rightAscension ); publish ( a, pi_declination, m_refTC.m_declination ); } Property Identifier Property Value

Next Generation CA Server – Data Access  Clerk a data querying and conversion interface– called by users  Clerk Library implements get Throws an exception if source datum is out of range in destination datum’s primitive type Const Catalog & genericData; Clerk clerk ( genericData ); Double rightAscension, declination; clerk.get (pi_rightAscension, rightAscension ); clerk.get (pi_declination, declination ); Property Identifier Property Value

Data Access – Interface and Implementation are Independent  Déjà vu … To plug and play participants copy their data to GDD, CDevData, XxxData … Containers have inside a doubly linked list of fields ○ Each field must be discriminated for scalar, vector, primitive type, bounds etc depending on how it will be used ○ tagging or virtual base class storage overhead, every field  Data Access It is only a data introspection interface ○ Storage formats remain compact and decoupled ○ Data storage is typically the user’s flat data structure DA can wrap all of the above – the converse is not possible Introspector’s binding can be efficient Based on virtual functions – i.e. compile time binding

Data Access – Efficiency Still Matters  Data Access enables transport of parasitic application specific data (such as the LANSCE flavor) through the system software layers while maintaining reasonable storage efficiency Data are polymorphic at the data structure level, and not at the field level. This implies better storage efficiency. Data are reference counted when they are stored in the event queues of multiple clients Same data payload can be used for multiple event types Nevertheless, we retain the ability to generically index the data during event filtering Data are allocated, and de-allocated, by the data producer Efficient free-lists based memory management is possible  Data on the event queue has good storage efficiency We actually do care about storage efficiency when buffering up multiple events on the event queue

Data Access – Recent Changes  Now both types (Genus) and instances (Specimen) published from the same code – but one must use a template  typedef Index Catalog; // Z: Genus, Specimen template class IndexAlarmLimits : public Index {}; template void IndexAlarmLowerLimits :: traverse ( Analyst & a ) const { publish ( a, pi_major, m_pDBR ->* pm_lower_alarm_limit ); publish ( a, pi_minor, m_pDBR ->* pm_lower_warning_limit ); } Pointer to Member Data Property Identifier Pointer Class Specialized on Z

Data Access – Recent Changes  Probe, the data inspector class Querying existence, type, bounds, etc Const Cartalog & someData; Probe probePV (someData, dbr :: pi_PV ); size_t count = probePV.elemCount (); Size_t elemSize = probePV.elemSize (); Probe :: Type type = probePV.type(); If ( type == Probe :: t_absent || type == Probe :: t_implicit ) { } else if ( type == t_container ) { } Elis id ( type == t_integer ) { }

Next Generation CA Server – Process Variable Schema pv { timeStamp alarm { acknowledge { pending } condition { status, severity } } limits { display { upper, lower } control { upper, lower } alarm { major { upper, lower } minor { upper, lower } } labels units precision class { name } } Green indicates that a value is stored. In a DA tree a node does not need to be a leaf node in order to carry a value. This allows for less hierarchy traversal when doing a basic fetch. For example. Catalog & someData; Clerk clerk (someData ); double value; clerk.get (pi_pv, value );

Next Generation CA Server – CA Response Payload Schema success PV schema (see previous slide) other success schema depending on method invoked… failure context unresponsive {…} serviceDisconnect {…} exceptionX {…} exceptionY {…} exceptionZ {...} … Context – character string containing complete context trace back to the source of the problem

Next Gen CA Server – Status  Server is completed It runs, passes some of the tests, more testing in progress  Next step IOC integration

Next Gen CA Server – 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 hopefully easier  Multi-element “Timed” data COTS digitizer Window in time selected

Next Gen CA Server – Benefits for EPICS Community  Flexible event snapshots Parameters other than alarm status, time stamp, scalar value correlated on event queue Array update bursts buffered on event queue  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