Space occupied by a record


#1

I’ve just started exploring Aerospike and couldn’t understand how to calculate the total size occupied by a record after reading the articles available on the website.[1][2]

As per my understanding, If I’m using persistence in a file(on my HDD), data will be stored both in RAM as well as on HDD. The hash of the primary key will be stored only in RAM which will occupy 64 bytes(per record) in RAM in each replica. I’m currently using the C driver to make entries. Particularly, I’m using the ‘as_record_set_int64()’ to store some integers and ‘as_record_set_bytes()’ to store some C structures as blobs. How do I calculate the amount of memory a single record will take on RAM? Is this amount different for file and RAM? Is there any compression done?


#2

The capacity planning article covers this

https://www.aerospike.com/docs/operations/plan/capacity/

What you stated isn’t fully correct. The persistence layer is declared in one pair of config params (file & filesystem or device). Whether The data is stored in memory or not is controlled by data-in-memory.

You have recipes for different storage engine configurations here

https://www.aerospike.com/docs/operations/configure/namespace/storage/index.html

In theory, you could be in-memory with persistence to filesystem or device, or you could be data on device (SSD), or you could even be data on filesystem. The last option is not recommended, unless you leave a lot of free RAM for the OS and filesystem to use. The recipes show you the most common storage engine configurations.


#3

Consider taking AS102 and AS101 - schedule here: https://www.aerospike.com/training/schedule/