Keeping Transactions in Sync with Auto-Recovery



When transactions are executed with a fabric scope, they get applied to all nodes that are part of the same fabric instance as the local node. This process requires coordination and synchronization across the nodes.


You can display the ID of the last executed transaction by using the fabric-node-show command:


CLI (network-admin@pnswitch1) > fabric-node-show format name,fab-name,fab-tid,state,device-state,


name      fab-name   fab-tid  state   device-state

--------- ---------- -------  ------  ------------

pnswitch2  pnfabric    2       online   ok

pnswitch1  pnfabric    2       online   ok


The ID is the same because the fabric has made sure that the same transaction be executed consistently on all online nodes.


What happens, though, if one of the nodes is temporarily offline and gets out of sync?


Netvisor ONE’s fabric synchronization logic possesses an auto-recovery function (called auto-recover) that makes sure that the transactions get automatically resynchronized when they accidentally go out of sync. This capability is enabled by default:


CLI (network-admin@pnswitch1) > transaction-settings-show


switch:                            pnswitch1

allow-offline-cluster-nodes:       on

auto-recover:                      on

auto-recover-retry-time:           5m

reserve-retry-maximum:             10

reserve-retry-interval-maximum(s): 8


In special scenarios, this capability can be turned off on purpose to force the configuration of a specific node to be rolled back to a previous state:


CLI (network-admin@pnswitch1) > transaction-settings-modify no-auto-recover


CLI (network-admin@pnswitch1) > transaction-settings-show

switch:                            pnswitch1

allow-offline-cluster-nodes:       on

auto-recover:                      off

auto-recover-retry-time:           5m

reserve-retry-maximum:             10

reserve-retry-interval-maximum(s): 8


switch:                            pnswitch2

allow-offline-cluster-nodes:       on

auto-recover:                      on

auto-recover-retry-time:           5m

reserve-retry-maximum:             10

reserve-retry-interval-maximum(s): 8


However, this change is local to the device where the command was issued. Therefore, in those cases in which it is necessary to apply this change to all nodes in the fabric, the switch * directive as shown in the following command can be used:


CLI (network-admin@pnswitch1) > switch * transaction-settings-modify no-auto-recover


CLI (network-admin@pnswitch1) > transaction-settings-show

switch:                            pnswitch1

allow-offline-cluster-nodes:       on

auto-recover:                      off

auto-recover-retry-time:           5m

reserve-retry-maximum:             10

reserve-retry-interval-maximum(s): 8


switch:                            pnswitch2

allow-offline-cluster-nodes:       on

auto-recover:                      off

auto-recover-retry-time:           5m

reserve-retry-maximum:             10

reserve-retry-interval-maximum(s): 8