An introduction to pmemobj (part 4) - transactional dynamic memory allocation

An introduction to pmemobj (part 4) - transactional dynamic memory allocation

This is a topic I intentionally avoided not to introduce too much complexity too fast. The pmemobj library contains an implemented from scratch memory allocator, that was designed with persistent memory in mind. There are two separate APIs: non-transactional and transactional. Transactional …

Read More
An introduction to pmemobj (part 3) - types

An introduction to pmemobj (part 3) - types

In all of the previous post the code snippets and examples had persistent pointers (PMEMoid) without any type information - they were simple C structures. Very early in the development of the library we discovered that using something like that was extremely error-prone and generally difficult. …

Read More
An introduction to pmemobj (part 2) - transactions

An introduction to pmemobj (part 2) - transactions

By now you should be fairly familiar with the basics persistent memory programming, but to make sure the application is always in a consistent state you had to rely on your own solutions and tricks - like the length of a buffer in the previous example. Now, we will learn a generic solution provided …

Read More
An introduction to pmemobj (part 1) - accessing the persistent memory

An introduction to pmemobj (part 1) - accessing the persistent memory

In the previous post, you learned a little bit about the general concept of the persistent memory programming model, now it’s time to start the coding ;) Memory pools If you’ve read the overview you know that persistent memory is exposed by the OS as memory-mapped files, we call them …

Read More
An introduction to pmemobj (part 0) - new programming model

An introduction to pmemobj (part 0) - new programming model

The aim of this tutorial series is to introduce you to programming with persistent, byte-addressable memory using the pmemobj library. We will go over all the available features, implement an example application and learn something about the inner workings of libpmemobj. If you haven’t read …

Read More