Skip to main content

XDR Compression, record forwarding, and deleted records

The following optional parameters can be included in a dc's namespace sub-stanza.

The values shown below are different from their parameter defaults.

xdr {
dc dataCenter1 {
namespace someNameSpaceName {
enable-compression true
compression-level 6
compression-threshold 1024
forward true
ignore-expunges true
ship-nsup-deletes true
}
}
}
ParameterDefaultDescription
enable-compressionfalseCompression of data-in-transit is disabled by default.
compression-level1Level of compression of data-in-transit. Must be accompanied by enable-compression true. Available in version 5.1+
compression-threshold128Record size threshold, in bytes, at or above which records will be compressed for transit. Must be accompanied by enable-compression true. Available in version 6.0+
forwardfalseForward records to other datacenters.
ignore-expungesfalseBy default, XDR ships user-initiated record deletes.
ship-nsup-deletesfalseBy default, records that were expired or evicted by the namespace supervisor (nsup) are not shipped. This supports deployments where users want to have distinct time-to-live values for the data in each XDR-linked Aerospike cluster, and trust the nsup of each cluster to handle its expiration and eviction. When this parameter is true, an nsup delete results in XDR shipping the record's digest, set name, and if it was previously stored using Policy.sendKey, its user key. This may be preferred when the source cluster is shipping its writes to a non-Aerospike destination, such as a different database, using the Kafka outbound connector.

Manipulating shipment on a forwarding node

You can further filter which records will be forwarded by an intermediate datacenter.

For example, consider the namespace stanza below on an intermediate node. The set set_id2 is blacklisted with ignore_set. If this node receives a record contained in that set from the upstream node, that record is not forwarded downstream. The other parameter settings are honored.

namespace ns2 {
forward true
ignore-set set_id2
enable-compression true
max-throughput 30000
ship-nsup-deletes true
}

Using destination alternate access address

If the remote node's broadcast addresses for local applications are not accessible from the source cluster, the remote's configuration must broadcast an alternate address that is discoverable by the source cluster.

Remote node network configuration

 network {
service {
address any
port 3000
access-address aa.aa.aa.aa
alternate-access-address xx.xx.xx.xx
}
}

Source node configuration

If a remote node's alternate-access-address is set, depending on the Aerospike version, the source cluster has to specify use-alternate-access-address true to use the alternate IP address to connect to the destination node.

xdr {
dc dataCenter1 {
node-address-port 10.0.0.1 3000
use-alternate-access-address true
...
}
}