LSA TB 10.11.2016 - Indico
Transcription
LSA TB 10.11.2016 - Indico
Settings persistency for the LHC Enrico Bravin CERN BE-BI BI technical board - 10 November 2016 Status and motivation • • For many BI systems settings managed by FESA persistency only • No trace of changes • Difficult to recover the proper values in case persistency is lost or wrong values are set by mistake Ad hoc solutions invented by experts to cope with this (logbook, private setting files, LDB etc.) CO Supported solution • To operate LHC zillions of dynamic settings are needed • LSA (LHC software architecture) designed for the LHC • A database of settings and the tools to manage/drive them • Later the concept was expanded to the injectors → INCA • CO provides an LSA API + number of tools to access/manage the settings • INCA concept added to JAPC (if you incaify the application) to simplify the introduction of INCA in the existing injector systems Equipment access Application Application JAPC Application JAPC INCA RDA RDA FESA FESA Direct access RDA (C++) PyRDA/PICA Direct access JAPC (JAVA) PyJAPC ? LSA DB RDA FESA LSA/INCAified applications Equipment access Application Application JAPC Application JAPC INCA RDA RDA FESA FESA Direct access RDA (C++) PyRDA/PICA Direct access JAPC (JAVA) PyJAPC ? LSA DB RDA FESA LSA/INCAified applications The good Equipment access Application Application JAPC Application JAPC INCA LSA DB RDA RDA FESA FESA Direct access RDA (C++) PyRDA/PICA Direct access JAPC (JAVA) PyJAPC ? LSA/INCAified applications The bad The good RDA FESA Equipment access Application Application JAPC Application JAPC INCA LSA DB RDA RDA FESA FESA Direct access RDA (C++) PyRDA/PICA Direct access JAPC (JAVA) PyJAPC ? LSA/INCAified applications The ugly The bad The good RDA FESA Win and lose • • Advantages of using INCA/LSA • History of settings (can tag “golden” values using labels) • Easy to revert to values at any point in history • Settings can be dynamic (beam process/hyper cycle) • Possible to re-drive settings at start of cycle Disadvantages • Access only with JAVA: JAPC (PyJAPC) + LSA-API • Limitations on the data types (minimal) • No partial settings • Fields should not be duplicated in different properties Data types • • Supported • scalars • 1D and 2D arrays Not supported • Array of enums (enums are stored as strings) • Bit sets (can be stored as Int though) How should we implement LSA? • We typically have many settings that do not require management • • Settings that are automatically updated, settings that are actually acquisitions etc. We typically have several properties to access the same field • Settings, Expert settings, Guru settings etc. • We often use partial settings because we don’t dear to send the whole thing 😰 • The easiest solution would be to add one or more dedicated properties like LSASettings to each class with a copy of the interesting fields • Can still play around with old expert tools bypassing LSA for setting up / testing etc. • Capture a working state into LSA as production values Conclusions • LSA/INCA is the only official supported way of managing settings • No reason to reinvent the wheel! • Probably most FESA classes need modifications before importing into LSA • Need to compile a list of classes/devices/fields that need settings management (by the equipment manager) • As this goes on top of present BI-SW workload need to define priority