# XDR compression, 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.

Terminal window

```bash
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`](https://aerospike.com/docs/database/reference/config#xdr__enable-compression) | `false` | Compression of data-in-transit is disabled by default. |
| [`compression-level`](https://aerospike.com/docs/database/reference/config#namespace__compression-level) | `1` | Level of compression of data-in-transit. Must be accompanied by [`enable-compression`](https://aerospike.com/docs/database/reference/config#xdr__enable-compression) `true`. Available in Database 5.1.0 and later. |
| [`compression-threshold`](https://aerospike.com/docs/database/reference/config#xdr__compression-threshold) | `128` | Record size threshold, in bytes, at or above which records will be compressed for transit. Must be accompanied by [`enable-compression`](https://aerospike.com/docs/database/reference/config#xdr__enable-compression) `true`. Available in Available in Database 6.0.0 and later. |
| [`forward`](https://aerospike.com/docs/database/reference/config#xdr__forward) | `false` | Forward records to other datacenters. |
| [`ignore-expunges`](https://aerospike.com/docs/database/reference/config#xdr__ignore-expunges) | `false` | By default, XDR ships user-initiated record deletes. |
| [`ship-nsup-deletes`](https://aerospike.com/docs/database/reference/config#xdr__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`](https://aerospike.com/docs/database/learn/policies/#send-key), 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`](https://aerospike.com/docs/database/reference/config#xdr__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.

Terminal window

```bash
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

Terminal window

```bash
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`](https://aerospike.com/docs/database/reference/config#network__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.

Terminal window

```bash
xdr {

      dc dataCenter1 {

          node-address-port 10.0.0.1 3000

          use-alternate-access-address true

          ...

      }

  }
```