Introduction to libpmem2 (part 1)

Introduction to libpmem2 (part 1)

A new beginning This blog post will be about the recently created library libpmem2, which is a part of PMDK repository. Before we go into details it’s worth having a short look at the history. About seven years ago, the first persistent memory library known as libpmem was started. The concept …

Read More
Memory Tiering (part 2): Writing Transparent Tiering Solution

Memory Tiering (part 2): Writing Transparent Tiering Solution

This is the second part of the series of articles about memory tiering. The first one explained what memory tiering is and why we need it, the second one will explain some mechanisms behind transparent tiering. This article is intended for those who would like to learn how tiering/numa balancing or …

Read More
Memory Tiering (part 1)

Memory Tiering (part 1)

Extending memory capacity with PMEM Databases such as Redis (an in-memory key-value open-source database) consume a lot of memory. Since fast access is essential for them, they use DRAM to store their data. DRAM is quite expensive and has limited capacity, so a solution we propose in this blog post …

Read More
Similarity Search - opportunity for PMEM

Similarity Search - opportunity for PMEM

At a high level, computing solves problems. These problems, even though different and individual, are sometimes somehow related. A new algorithmic challenge can usually be solved by bringing it down to a well-defined problem with an existing solution. Today, we will be talking about one of such …

Read More
Basic asynchronous hashmap with Miniasync library

Basic asynchronous hashmap with Miniasync library

Miniasync library provides a framework for the composition and execution of asynchronous tasks in C. To accommodate different user-defined tasks and various types of data that they take in, libminiasync makes use of macros. Using libminiasync for the first time can be challenging. There are multiple …

Read More