Impact of enable-xdr global v/s namespace context


#1

What does enable-xdr in global and namespace context control?

Detail

This article explains what the enable-xdr configuration at global and at namespace level controls and when does XDR connect to a remote DC and ship records.

enable-xdr is a dynamically configurable parameter, which exists at 2 different contexts: global as well as namespace. This controls only the logging of digest entries in the digest log. It does not control the shipping of records.

Logging into the digest log and shipping are 2 different things.

Digest logging

Refer to the 2 enable-xdr entries in the Log Reference Manual and notice the 2 different contexts, xdr as well as namespace.

For digests to be logged in the digest log (xdr-digest-log-path, the global xdr context should always have enable-xdr set to true.

Digests will not be logged in the digest log if enable-xdr is set to false on the global level, irrespective of the value at the namespace level.

In the namespace context, for every namespace one can control whether the digest log entires should be logged for that namespace on that node by setting enable-xdr to true or false at the namespace level.

The following table details the different possibilities:

Namespace xdr context namespace context digest logging
test enabled enabled logged
test disable enable no-logging
test disable disable no-logging
test enable disable no-logging

For a given namespace, digest log entries will be logged only when enable-xdr is true in both the global as well as namespace contexts.

Connecting to a destination DC.

As of Aerospike Enterprise Edition 3.14, XDR will only connect to a destination DC if it is seeded at the global xdr context and if at least one namespace is associated with it.

Shipping

If there are records in the digest log that have not been processed (determined by the xdr-ship-outstanding-objects metric), XDR will keep shipping the related records irrespective of whether enable-xdr is set to true or false. This is because enable-xdr only determines whether the digest entries are logged into the digest log or not. enable-xdr does not control the shipping.

Note: By default, xdr always keep shipping if there are pending records in the digest log. This can be controlled using xdr-shipping-enabled config.

It is usually not recommended to change this configuration outside of very specific situations.

Keywords

XDR digestlog digest enable-xdr shipping

Timestamp

01/06/2018