The Savepoint functionality was created to support clean, consistent rollbacks during aborted switch and failover operations. This functionality works for both physical clusters as well as for composite clusters.
Savepoints are created automatically with every switch and failover command. The savepoint is only used if there is an exception during switch or failover that is actually able to be rolled-back.
Below is an example of the output:
[LOGICAL] /alpha > switch SELECTED SLAVE: db3@alpha SET POLICY: AUTOMATIC => MAINTENANCE Savepoint switch_2(cluster=alpha, source=db1, created=2019/06/29 13:51:56 BST) created ...
Not all exceptions during switch and failover will cause a rollback.
In particular, if an exception happens during switch or failover AFTER a new primary datasource has been put online (relay or master) then the switch or failover operation cannot be rolled back.
The Manager is configured, by default, to hold a maximum of 50 savepoints. When that limit is hit, the Manager resets the current-savepoint-id to 0 and starts to overwrite existing savepoints, starting at 0.