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
}
}
}
Parameter | Default | Description |
---|---|---|
enable-compression | false | Compression of data-in-transit is disabled by default. |
compression-level | 1 | Level of compression of data-in-transit. Must be accompanied by enable-compression true . Available in Database 5.1 and later. |
compression-threshold | 128 | Record 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. |
forward | false | Forward records to other datacenters. |
ignore-expunges | false | By default, XDR ships user-initiated record deletes. |
ship-nsup-deletes | false | By 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
...
}
}