Skip to main content
Loading

XDR Compression, record forwarding, and deleted records

The following optional parameters can be included in a namespace sub-stanza under dc in an XDR configuration.

The values shown in the following example 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 Database 5.1 and later.
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 Available in Database 6.0 and later.
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 set use-alternate-access-address to 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
...
}
}