Speaker
Description
The 5MW proton linear accelerator of the European Spallation Source ERIC is designed to accelerate the beam at a repetition rate of 14 Hz, which will dictate the refresh rate of most of the relevant data produced by acquisition systems. Around a thousand EPICS IOCs, mainly from RF stations and beam instrumentation, will produce large waveform PVs that cannot be feasibly transferred over the network and stored long-term. The Synchronous Data Service (SDS) is a proposal to facilitate the acquisition and correlation of high-resolution data from different systems during the most relevant period of time. Currently, SDS consists of an EPICS extension to be included in data acquisition IOCs and a client service that archives the SDS PVs. The EPICS IOC extension is implemented using the new C++ libraries provided by PVXS and is designed to be attached to any regular IOC that produces waveform records. The IOC module can store data from several pulses in a circular buffer and generates Normative Types PVs with a custom structure that includes data (from the original waveforms) and metadata (mainly the cycle identification number). The second main component of SDS is the collector service, responsible for monitoring a list of SDS PVs, correlating data from different systems based on the cycle ID and archiving them in permanent storage as NeXus files. In addition to the files, a database stores the metadata to enable a fast and powerful data retrieval service. The collector is implemented in Python using p4p for EPICS connections and Elasticsearch as the database and search engine. One of the main applications of SDS is to provide a distributed system for the collection of high-resolution data arrays of consecutive cycles for post-mortem and on-demand analysis, without overloading the control system network. In this presentation, we will describe the technical details of the implementation, the testing results and plans for deployment of the service in production.