Hi,
We have configured our namespace as follows (data-in-memory = true with storage-engine as device). As you can see in the screenshot, the data on disk is occupying ~111 GB (with a replication factor of 2) while that in memory is ~52 GB which is roughly half the data on disk. I am assuming this might because the data in memory has just one copy in memory.
If this is so, in case of node failures, the migration process also involved copying data in memory apart from building index. My question is, can we not tune the replication factor for the data in memory also? Is it and by default always going to be one copy in the memory?
The disk layout can me larger than the memory layout because each bin name contained within a record is also stored with the record. In memory, the bins hold a bin_id instead. Similarly for the set the data belongs to.
Yes, in 3.16 the rblock size was 128 bytes which meant the minimum size of a record on disk was 128 bytes and records grew in increments of 128 bytes. If a record took 129 bytes of space, it would occupy 256 bytes of storage.
As of 4.2 the rblock size is 16 bytes. Due to record metadata overhead, the minimum record size is 48 bytes. If the record occupies 49 bytes, it will require 64 bytes of storage space.