Context
Sometimes XDR needs to be disabled, either permanently or temporarily.Method
Disable XDR permanently
Perform a brute-force disabling of XDR by clearing the relevant XDR entries in aerospike.conf and proceeding with a rolling restart of the Aerospike cluster.
Disassociate a namespace to ship to a remote datacenter
In order to stop shipping to each DC you can use the following info command to remove each namespaces from those DCs
asinfo -v 'set-config:context=xdr;dc=<dcname>;namespace=<nsname>;action=remove'
or with asadm
asadm -e "asinfo -v 'set-config:context=xdr;dc=<dcname>;namespace=<nsname>;action=remove'"
This will discard all existing data in XDR transaction queues as described in this article: how to perform skip-outstanding.
Dynamically delete DC configuration
Delete a DC and remove all the associated namespace-level configs of that DC.
asinfo -v 'set-config:context=xdr;dc=<dcname>;action=delete'
or with asadm
asadm -e "asinfo -v 'set-config:context=xdr;dc=<dcname>;action=delete'"
Disable XDR temporarily (suspend shipping)
To disable XDR temporarily (suspend shipping) per namespace per DC set the configuration parameter max-throughput to zero.
asinfo -v 'set-config:context=xdr;dc=DC1;namespace=namespaceName;max-throughput=0'
or with asadm (to update on all the nodes in the cluster):
asadm -e "asinfo -v 'set-config:context=xdr;dc=DC1;namespace=namespaceName;max-throughput=0'"
max-throughput refers to the maximum number of records that are written per second to the destination data center (DC). When set to zero, XDR halts writing any records to the destination DC for the specified namespace. Shipping of records will only resume from the XDR transaction queues once max-throughput is set to a non-zero value. However, if shipping is suspended for an extended period of time, the queues may overflow, resulting in recovery mode causing potential backlog and delays in data transfer