Class ReassignAppliance

java.lang.Object
org.epics.archiverappliance.mgmt.bpl.ReassignAppliance
All Implemented Interfaces:
BPLAction

public class ReassignAppliance extends Object implements 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 applianceIdentity for the PVTypeInfo to 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
  • pv The name of the pv. The PV needs to be paused first and will remain in a paused state after the resharding is complete.
  • appliance The new appliance to assign the PV to. This is the same string as the identity element in the appliances.xml that identifies this appliance.