libvmemcache - buffer-based LRU cache

libvmemcache - buffer-based LRU cache

Introduction libvmemcache is a volatile key-value store optimized for operating on NVDIMM based space. However, it can work with any filesystem whether it is stored in memory (tmpfs) or on any storage device. Consequently, libvmemcache will be significantly less performant if it is stored on the …

Read More
C++ persistent containers - vector

C++ persistent containers - vector

[Note: pmem::obj::vector<> is no longer experimental. The rest of the information in this blog post is still accurate.] Introduction The main idea behind pmem containers is to fully exploit persistent memory potential by designing optimized on-media layouts and algorithms for persistent memory …

Read More
Pmreorder basics

Pmreorder basics

Introduction It’s good practice to run persistent memory application under pmemcheck - a tool which is described here and here. In this post, we are going to learn about another tool for persistence correctness checking. As you might already know if you’ve read posts linked above, …

Read More
Pool conversion tool

Pool conversion tool

Introduction When we published the first PMDK stable release, we committed to maintaining stable on-media layout. This means that all future PMDK changes have to be backward compatible. Unfortunately, we weren’t successful in adhering to the strict requirements which would be needed to …

Read More
Extended memcpy in PMDK 1.5

Extended memcpy in PMDK 1.5

In PMDK 1.5 we added new APIs for bulk persistent memory modifications. In short, we did this to: give applications the ability to perform low-level performance optimizations clean up the naming scheme In order to understand what exactly and why we did that, let’s review the old API. In PMDK …

Read More