Archiver Appliance documentation

This is an implementation of an archiver for EPICS control systems that aims to archive millions of PVs.

Here are the main features.

  • Ability to cluster appliances and to scale by adding appliances to the cluster.

  • Multiple stages and an inbuilt process to move data between the stages.

    • This supports the ability to use faster storage (which is perhaps limited in size) to improve performance.

    • Ability to reduce (decimate) the data as it moves into a store.

  • Focus on data retrieval performance.

  • A management interface giving you the ability to manage and monitor the system using a browser. This includes

    1. The ability to add PVs to a cluster of appliances using a browser (perhaps by users).

    2. Various metrics to help with capacity planning.

    3. Ability to define system-wide defaults for archiving parameters using policies.

  • Ability to script the business processes in the appliances using an external process in a language like Python.

  • Ability to configure various archiving parameters on a per PV basis.

  • Ability to customize the appliance to suit a different set of requirements. This includes

    • The ability to use alternate storage technologies that may better suit your needs or perform better in your environment.

    • The ability to define your own data reduction algorithms and to optionally cache data generated by these algorithms on a per PV basis.

    • Simple ways to add support for new MIME types in data retrieval responses.

  • Support for EPICS aliases.

  • Support for EPICS 7/PVAccess/Structured data.

  • Support for retrieval of data using CS-Studio, the ArchiveViewer and Matlab.

  • Limited integration with existing Channel Archiver data sources.

Motivation

Archiving millions of PVs requires a few additional features beyond a simple archiver. In addition to focusing on the EPICS side of the equation, we also need to address the various IT aspects like flexibility, scriptability, and policy enforcement. An integrated multi-head, multi-stage solution was called for; hence the appliance.

EPICS 7

The archiver appliance has built in support for EPICS 7 and archiving PVs over PVAccess. NTScalars and NTScalarArrays are stored as their channel access counterparts. For example, PVDoubles will be stored as DBR_SCALAR_DOUBLEs. This makes it possible to use standard archive viewers to view NTScalars and NTScalarArrays archived thru PVAccess. Other PVData types are stored as a bunch of bits using PVAccess serialization. While this is probably not the most efficient, it does allow for archiving of arbitrary structured data. There is support for retrieving of structured data using the RAW and JSON formats.

Last published on Mar 06, 2026. This project is part of the AccelUtils collaboration.