C++ bindings for libpmemobj (part 3) - persistent queue example

C++ bindings for libpmemobj (part 3) - persistent queue example

The best way to learn to code is usually by implementing an example. We are going to be creating a linked-list based queue data structure using the the pmem::obj::p and pmem::obj::persistent_ptr classes and libpmemobj C API. But first, a little bit of CS 101 :) Linked-list queue Queue is a …

Read More
Performance improvements

Performance improvements

I would like to inform you about the performance improvements that have been going on in PMDK and libpmemobj in particular. We have not been standing still and we are trying out a couple of ideas on how to make our libraries even faster. Some of the improvements are smaller, some are larger. Some of …

Read More
An introduction to replication

An introduction to replication

Replication is a means for raising the reliability of your pmemobj based applications. You can basically think of it as RAID 1 within PMDK. What happens is, when you write to your pool using the pmemobj_* (memcpy, persist, and so on) primitives, it gets copied to your replicas. Yes, you can have …

Read More
Evaluation of a better object container

Evaluation of a better object container

During performance evaluation of our library, I asked myself a following question: Which data structure has computational complexity of “insert at end” and “remove given element” operations no worse than a doubly-linked list, but with a smaller constant? The point of that …

Read More
pmemobjfs - The simple FUSE based on libpmemobj

pmemobjfs - The simple FUSE based on libpmemobj

How to use it The sources of the pmemobjfs file system are available here. Please refer to README file for instructions on how to create a file system layout and mount it. NOTE: This is just an example implementation of file system in user space using the libpmemobj library and it is not considered …

Read More