Piotr Balcer
Piotr Balcer
This patch fixes a bug where pfree(), combined with reservations, prior to any allocs could have led to overlapping allocations - which ultimately was causing corrupted heap and incorrect statistics....
# FEAT: libpmemstream ## Rationale A logging data structure is foundational for many different higher-level constructs. A flexible implementation can be used in many different ways. Possible use cases: -...
# FEAT: Low-level concurrency framework for asynchronous functions ## Rationale With upcoming hardware-accelerated asynchronous memory operations [0], there's a need to have a uniform and straightforward way of expressing asynchronous...
This patch tightens the arena abstraction and moves it to its separate module. This new interface is also better at enforcing lock interactions better than what we had before. Includes...
# FEAT: single-threaded mode for libpmemobj ## Rationale Applications that will only ever use libpmemobj from a single thread (e.g., DAOS) might not need some of the scalability optimizations we've...
# Run tracking improvements ## Rationale Current worst-case performance of run recycling is O(n), because we have to effectively lazily walk over all runs in the heap, looking for free...
# FEAT: heap shrink to fit ## Rationale We've finally implemented defragmentation and heap extension, so the logical next step is to implement shrinking. This will enable applications to dynamically...
# FEAT: Heap segmentation ## Rationale It's common in file system to reserve certain amount of space for root-only or critical operations so that the file system is never put...
## Rationale Creating correct, replicated and safe persistent programs using nothing but the raw primitives exposed by libpmem or libpmem2 requires a lot of uninteresting boilerplate to manage file creation,...
# thread-safe pool management Depends on pmem/issues#871 ## Rationale The behavior of pool management functions is not intuitive and probably the biggest trap for programmers in our API. This needs...