In-flight Transaction Recovery
EFA can recover in-flight (in-progress)
transactions after a service restart or high-availability failover.
Overview
After a service restart or high-availability failover, EFA can recover in-flight transactions
by rolling them back or rolling them forward. In-flight transactions are those that
are outstanding in the execution log after a restart or a failover.
- When transactions are rolled
back, the requested action is undone.
- When transactions are rolled
forward, the requested action is completed.
By default, this feature enables the automatic recovery of Day-1 through Dan-N operations for
tenant-related configurations. You can use the
efa system feature update
--inflight-transaction-auto-recovery disable command to disable the
feature. When the feature is enabled, the recovery strategy is as follows.
Table 1. Recovery strategy
Operation type |
Commands |
Strategy |
Create operations |
- efa
tenant create
- efa
tenant epg create
- efa
tenant po create
- efa
tenant service bgp peer create
- efa
tenant service bgp peer-group create
- efa
tenant vrf create
|
Roll back |
Delete operations |
- efa
tenant delete
- efa
tenant epg delete
- efa
tenant po delete
- efa
tenant service bgp peer delete
- efa
tenant service bgp peer-group delete
- efa
tenant vrf delete
|
Roll forward |
Update with add operations, such as port-add, ctag-range-add,
and vrf-add |
- efa
tenant update
- efa
tenant epg update
- efa
tenant po update
- efa
tenant service bgp peer update
- efa
tenant service bgp peer-group update
- efa
tenant vrf update
|
Roll back |
Update with delete operations, such as port-delete,
vrf-delete, and ctag-range-delete |
- efa
tenant update
- efa
tenant epg update
- efa
tenant po update
- efa
tenant service bgp peer update
- efa
tenant service bgp peer-group update
- efa
tenant vrf update
|
Roll forward |
Consider the following expected behaviors for this feature:
- During operations that take a long time,
such as drift and reconcile and firmware downloads, tenant operations and
recovery operations are blocked.
- When multiple transactions
are pending in the execution log after a restart or a failover, recovery
occurs in the order in which the operations appear in the execution
log.
- If a service restart or high availability
failover occurs during transaction recovery, then the status of those
recovery operations is changed to a normal status. For example, if a restart
occurs during the rollback of an endpoint group (EPG), the status changes to
delete-pending. There is no automatic recovery of interrupted recovery
transactions. You must manually verify and address the status of such
operations.
Important
Day-0 and administrative operations (those for the Inventory Service and Fabric Service) are
not recovered automatically. If these operations are interrupted by a service
restart or a failover, you must manually redo the operations.
Examples
This example enables automatic in-flight transaction recovery.
efa system feature update --inflight-transaction-auto-recovery enable
Feature Setting Updated Successful
--- Time Elapsed: 634.557118ms ---
This example disables automatic in-flight transaction recovery.
efa system feature update --inflight-transaction-auto-recovery disable
Feature Setting Updated Successful
--- Time Elapsed: 634.557125ms ---