Aerospike in VM : XDR and Logger


#1

Hi, I was going through the XDR mechanism and found below query.

Scenario: I am going choose pure in memory aerospike cluster to avoid performance lag in disk/storage in VM. . Along with that planning to have XDR. But XDR’s logger component uses disk to write digest logs so in that case it may come across disk performance issue. Is there any way so that XDR also uses in memory capability to avoid logger writing digest files to disk ?

I have not tried much though but how much the performance will dip (in terms like 2x, 5x or 10x) when I will be running aerospike in VM ? (Considering pure in-memory storage and also same CPU capacity as bare machine. I understand that there will be a performance dip because of virtualization layer, but it should not be 5x or 10x lesser than same configuration bare metal machine)

Thank you!

Regards Paresh


#2

Are you using Enterprise Edition?


#3

XDR Digestlog only stores references to the keys, the digest itself - not the actual data. So the amount of disk io is negligible. That being said, you could always use tmpfs to store the digestlog if you want it in-memory. https://en.wikipedia.org/wiki/Tmpfs not sure if Aerospike has a way of storing it in memory, that tmpfs is an easy win. I’d suggest testing it out and watching your io to see if it is actually something that would benefit you before moving it to RAM.


#4

No not yet. we are just studying the enterprise features.


#5

Thank you for the information. We will test that out. But by any chance, is there a way to store digest log purely in RAM or only tempfs is the only way ?


#6

You cannot run XDR on Community Edition. While local cluster database read writes are in the order of millisecond latency, XDR is intended for shipping data to a remote cluster at latency of “seconds” level and asynchronously. The digest log is usually put on a filesystem since it is typically sized to 100GB to 300GB in order to archive 2 to 3 days worth of digests locally should the link to the remote cluster go down for a day or two. So saving digest in RAM is not the intended use case.

The digest log file serves as a large persistent buffer to handle local node failures, intermittent outgoing link to remote failures and failed remote cluster. Hope this brief explanation helps. Aerospike also offers a full day virtual training course on XDR if you would like to explore in detail at a later time. ( www.aerospike.com/schedule )