Redundancy in the EPICS Archiver Appliance

The EPICS Archiver Appliance has limited support for archiving the same PV in multiple clusters and merging in the data from both appliances during data retrieval. This feature allows for a some redundancy when archiving a small set of critical PVs. At a high level

Case study

In an ideal world, to achive redundancy when archiving PV's, we'd have multiple large identical independent clusters archiving the same set of PVs. For financial and other reasons, this may not be possible for all installations. This case study outlines a setup for achieving redundancy for a small subset of critical PVs.

Because we wish to accomplish redundancy for a small set of critical PVs, we have two asymmetric independent clusters. The primary cluster is your main archiver and will archive millions of PV's ( including the small subset of critical PVs ) and process almost all the data retrieval requests. The secondary cluster is an independent cluster and is the backup archiver and will archive only the small subset of critical PVs. In this case, the data is stored only for 6 months and then is automatically deleted using a blackhole plugin.

When we add the mergeDuringRetrieval proxy to the secondary cluster, all data retrieval requests to the secondary cluster will automatically make a call to the primary cluster with the same parameters and then merge in the data from both clusters. Note that this does not alter the stored data in any way; the merge is only done for data retrieval. Thus, data retrieval calls to the secondary cluster will also include data from the primary cluster. Folks interested in a complete data set can make data retrieval calls to the secondary cluster; the data retrieval will be slightly slower because of the merging operation. Folks making data retrieval calls to the primary will only get data from the primary cluster; but because no merging is performed, retrieval calls are much faster.

Periodically, one can manually merge in data from the secondary cluster to the primary cluster using the mergeInData BPL. This requires data the PV to be paused in the primary cluster while the merge is happening. The mergeInData picks up all data from the secondary cluster and merges it into the primary cluster.