Libpmemobj-cpp - lessons learned

Libpmemobj-cpp - lessons learned

Introduction We’ve been working on C++ bindings for libpmemobj since around 2016 - see our very first tutorial for libpmemobj-cpp. We’ve come a long way since then. A lot has changed - we’ve gained more experience and knowledge, added new features, fixed quite a few bugs, and …

Read More
Concurrency considerations in libpmemobj-cpp

Concurrency considerations in libpmemobj-cpp

Introduction Ensuring data consistency on pmem is a challenging task. It gets even more complicated if data is modified concurrently. This blog post describes several challenges related to data visibility, using transactions in multi-threaded environments, and memory leaks. Lock-free programming on …

Read More
Memkind support for heterogeneous memory attributes

Memkind support for heterogeneous memory attributes

Introduction Memkind is a library mostly associated with enabling Persistent Memory. However, it is not the only type of memory that memkind supports. The library is a general solution designed for platforms with heterogeneous memory. But before we delve into heterogeneous memory itself, let’s …

Read More
Using Memkind in Hazelcast

Using Memkind in Hazelcast

This blog post is published on the Hazelcast blog as well. If interested in Hazelcast, check the other posts there too. Introduction The mission of the PMDK team has always been and will always be to make programming persistent memory easier for the community of software developers. One of our goals …

Read More
API overview of pmemkv-java binding

API overview of pmemkv-java binding

Pmemkv is a key-value data store written in C and C++, however, it also opens up a way to leverage persistent memory by developers who prefer high-level languages - such as Java. For more information about other bindings please read Language bindings for pmemkv article and pmemkv README We built an …

Read More