Using Standard Library Containers with Persistent Memory

Using Standard Library Containers with Persistent Memory

Introduction Somewhere along the road, when we were doing the C++ bindings for libpmemobj, we found the need for some kind of containers. We were faced with two viable solutions: write everything from scratch or adapt an existing implementation. The obvious choice was NOT to implement from scratch. …

Read More
Progress Report Q2 2017

Progress Report Q2 2017

It’s summer already (at least in my hemisphere) ! :) And it’s time for the next progress report. Control interface After a very long in the oven, we’ve finally finalized and merged the CTL API which allows for introspection and modification of the internal state of the library. …

Read More
Apache Kudu Persistent Memory Enabled Block Cache

Apache Kudu Persistent Memory Enabled Block Cache

Using NVM Libraries To Add Persistent Memory Support to Apache Kudu Block Cache An early project done with the NVM libraries was adding persistent memory support, both volatile and persistent mode, into the Apache Kudu storage engine block cache. This project required modification of existing code. …

Read More
Progress Report Q1 2017

Progress Report Q1 2017

It’s been three months already since the last time I wrote something ;) Time really flies by quickly when you are doing interesting stuff. We’ve been very busy with lots of improvements to the library as well as A LOT of tiny fixes: over the last three months the team eliminated …

Read More
Zero-copy leaf splits in pmemkv

Zero-copy leaf splits in pmemkv

In a B+ tree, splitting a full leaf into two leaves is one of its slowest operations, but pmemkv optimizes this using a zero-copy strategy. Rather then copying any key/value data between full and new leaf, pmemkv splits leaves by swapping persistent structures in place. This minimizes write …

Read More