metall
metall copied to clipboard
Persistent memory allocator for data-centric analytics
One nice to have feature would be to be able to flush or snapshot only a certain key. We have a situation in a multithreaded application where threads may be...
Hi, we've ran into a problem an wanted some guidance. So, the metall manager has this `k_chunk_size` template parameter which is set to `1
https://github.com/LLNL/metall/blob/1f6c027680ea89bf92bd9a5255e006c044aa078f/include/metall/container/fallback_allocator.hpp#L217-L219 We use the fallback_allocator in an algorithm that behaves differently based on weather the stateful allocator is used or not. ATM, we just re-implement the `private_stateful_allocatorator_available()` in our code....
The following code causes a segfault: ```c++ std::string const path{std::format("/tmp/metall-test-capacity-{}", std::random_device{}())}; metall::manager manager{metall::create_only, path, 1}; std::vector vec{manager.get_allocator()}; for (size_t cap = 0; cap < 100'000'000; cap += 1'000'000) { vec.resize(cap);...
In `object_cache::priv_make_room_for_new_blocks` there is an assertion that the oldest block must not be nullptr https://github.com/LLNL/metall/blob/1f6c027680ea89bf92bd9a5255e006c044aa078f/include/metall/kernel/object_cache.hpp#L742. However, this assertion is not always true which causes a segfault on one of the...
In this header for instance https://github.com/LLNL/metall/blob/master/include/metall/detail/array_construct.hpp there is a `using` declaration for `array_construct` out of the `ipcdetail` namespace of `boost::interprocess`. (There might be other places like this) This namespace is...
Currently, metall prevents to open the same datastore as read-write twice at the same time. However, it allows to open a datastore as read-write even if it is already opened...
Hi, there is this function `fsync_recursive` which walks up the directory tree until it reaches the root and `fsync`s everything in between. https://github.com/LLNL/metall/blob/1f6c027680ea89bf92bd9a5255e006c044aa078f/include/metall/detail/file.hpp#L72-L85 This behaviour causes issues on SELinux systems...