Class ReassignAppliance
java.lang.Object
org.epics.archiverappliance.mgmt.bpl.ReassignAppliance
- All Implemented Interfaces:
BPLAction
Change the appliance for a PV. This is an alternate approach for resharding a PV that relies on data stores
that are shared between appliances and consolidateOnShutdown on multiple data stores.
Here's one scenario where reassign applices can be used.
- We have a three stages of storage - STS, MTS and LTS.
- The LTS is shared between the apliances in the cluster. That is, all the appliances in the cluster mount the same storage for the LTS.
For example, for the PB file for 2025 for the PV arch:test,
arch/test_2025.pb, all appliances will be able to read/write the same LTS file/arch/lts/arch/test_2025.pb - The PV is assigned to one appliance at a time; so only that appliance will actually read/write from the shared LTS. But, if at any time in the future, the PV is assigned to another appliance; that new appliance can continue to read/write from the shared LTS and there will be no data loss.
- In such a situation, one cen simple change the
applianceIdentityfor thePVTypeInfoto reassign the PV to another appliance - Since the STS and the MTS are not shared between the appliances in the cluster, we configure both of these with a consolidateOnShutdown to move the data to the LTS when the PV's ETL jobs are shutdown on the source appliance.
- All the appliance components ( mgmt, ETL, engine and retrieval ) subscribe to changes in PVTypeInfo's and react accordingly.
- Reassigning PVs tp new appliances is not transactional. Once a PV has been reassigned, plese do check the various components to make sure the reassignment was successful.
Reassigning PVs tp new appliances is relatively inexpensive when compared to resharding. Thus, appliance reassignment can be used for more dynamic capacity planning. It can also be done in bulk.
- Author:
- mshankar
Access using:
http://mgmt_url/bpl/reassignAppliance - This BPL changes the applianceIdentity on the PV's PVTypeInfo to another appliance. This BPL assumes that the data stores are configured correctly to support this. Please see the JavaDoc for more details; otherwise this operation will result in data loss.identity element in the appliances.xml that identifies this appliance.