XDR priority logic


#1

Hi,

As per the documentation - XDR runs at lower priority than the main database process. At peak times, XDR may run very slowly, and catch up when traffic is lower.

What is the logic to determine the XDR priority to run (a formula - like 50% of cpu, 60% of IOPS, 80% of N/W etc.) ? I want to understand this to relate with our system behavior.

Regards Amod


#2

I am not sure where you read that, but only half of it is true. Please point to the documentation and we will fix it.

XDR itself does not run at a lower priority. XDR when used in batch mode makes batch read calls to the local server. There are fewer number of threads which are designated to handle batch read calls. Probably this is what you mean by XDR running at lower priority. However, when you run XDR in single mode, it uses the main transaction threads and you typically have bunch of them (typically 32-64). This mode is especially useful when data is on disk and XDR’s batch mode is proven to be not so useful. Be careful and do homework before switching the defaults.

PS: Amod, if you are using XDR, you must be using the enterprise product. So, its better to get in touch with us directly using the enterprise support channel. We will be able to help you directly.


#3

Hi Sunil,

Thanks a lot for your response.

https://www.aerospike.com/docs/architecture/xdr.html - You might need to update the documentation.

I was using this forum so that it might help others on similar questions.

This is our configuration

xdr-threads               3
xdr-max-recs-inflight     3000
xdr-read-threads          1
xdr-read-batch-size       1000
xdr-write-batch-size      100
xdr-compression-threshold 1000

How do we determine the right configuration to use for our deployment?