You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Mar 23, 2023. It is now read-only.
I have simple modified MixedExample.java that tries to put four 4MB Java ByteBuffer into a 32MB vcmap engine. The code compiles but to my surprise it throws out of memory exception when it tries to put the 4th ByteBufffer.
It looks like when put into pmemkv-java, the key-value pair consumes more space then it appears. Can you confirm if this is the case? If so, is there a way we can calculate how much storage is needed before we store the data? And is there an API to get the available storage from an existing pmemkv-java database?
For very small pools (like 32MB) you may see very big (relatively to pool size) overhead in memory footprint, due to data structure meta-data (which may vary between engines) ,pool meta-data, and data fragmentation.
In general, every data structure (also for dram) consumes some additional space for meta data.
Thank you Karczex. I understand that there will be overhead with any kv store but what we have been observing is that for a 32MB pmemkv-java database we can only store 8MB worth of data (sometimes we can store 12MB, I don't know if there is another issue here).
So is there a way we can find out for a given size of data, how much storage is actually used by pmemkv-java?
Once run, you can estimate the records count, which will fit into database with specific engine and key/value sizes. That's all approximate, but it may give you some answers.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Hello,
I have simple modified MixedExample.java that tries to put four 4MB Java ByteBuffer into a 32MB vcmap engine. The code compiles but to my surprise it throws out of memory exception when it tries to put the 4th ByteBufffer.
It looks like when put into pmemkv-java, the key-value pair consumes more space then it appears. Can you confirm if this is the case? If so, is there a way we can calculate how much storage is needed before we store the data? And is there an API to get the available storage from an existing pmemkv-java database?
Thanks
MixedExample.txt
The text was updated successfully, but these errors were encountered: