New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some questions about custom class #5956
Comments
pmdk version: 1.12.1-rc1. This Issue may be related to this commit b1d9a57, which fix bug to ensure zones are reclaimed prior to free. thanks. |
Hi. We currently operate on very limited resources. Can you give me some information on how important this issue is to you and the project you are working on right now? Thanks. Please let me know if the information I am asking for is confidential. We can sort it out outside of the GitHub. |
Hi. We use PMDK in our storage system, which is used for the company's cloud services and stores a large amount of user data. This issue will cause our storage system reporting insufficient storage space, causing the storage system to be unavailable and interrupting user services. |
I'm on it. |
Yes. It is still supported. Note that it is still an experimental API. The documentation for the CTL PMEMOBJ APIs is available here: https://github.com/pmem/pmdk/blob/master/doc/libpmemobj/pmemobj_ctl_get.3.md. Specifically, you can find details explaining the meaning of some structure fields in the related header: https://github.com/pmem/pmdk/blob/master/src/include/libpmemobj/ctl.h. Ref: https://pmem.io/pmdk/manpages/linux/master/pmem_ctl/pmem_ctl.5/ |
The allocation classes are part of the runtime state of the library and must be created after every open. |
The values between 0-127 are reserved for the default allocation classes of the library and can be used only for reading. The recommended method for retrieving information about all allocation classes is to call this entry point for all class ids between 0 and 254 and discard those results for which the function returns an error. For reading, function returns 0 if successful, if the allocation class does not exist it sets the errno to ENOENT and returns -1; |
QUESTION: Some questions about custom class
Details
Issue Step:
pmemobj_tx_begin
pmemobj_tx_xalloc
pmemobj_tx_free
pmemobj_tx_end
From above steps, we can see that chunk free space is about 200k during repeat malloc and free the custom class. We think a chunk size in PMDK is 256k, so to open objpool will trigger to process undo log and earlier reclaim of zone, after the open then to register new class, meanwhile malloc a new 256k chunk for this class, instead of previous 200k old chunk.
Questions
using pmemobj_open to open the objpool #trigger the undo log
using pmemobj_close to close the objpool
then to open the objpool again #not need undo operate and zone reclaim
test log:
The text was updated successfully, but these errors were encountered: