Wait-free Memory Reclamation and Data Structures - Ruslan Nikolaev

Wait-free Memory Reclamation and Data Structures - Ruslan Nikolaev

A number of concurrency libraries for programming languages such as C++ and Java have been developed. However, efficient non-blocking memory reclamation is still a challenge, especially in languages with manual memory management such as C++. In such settings, not only memory has to be safely reclaimed, but also memory usage must remain bounded. Otherwise, memory can be exhausted, which violates progress properties.

As the number of cores grows, efficient concurrent data structures have become increasingly important because they reduce sequential execution times, and thereby yield scalable performance.

Non-blocking data structures have received particular attention in practice due to their synchronization properties that are relevant in multi-threaded environments, especially their platform-independent progress guarantees — i.e., the ability for threads to make progress without depending on the OS or VM schedulers. A number of concurrency libraries for programming languages such as C++ and Java have been developed. However, efficient non-blocking memory reclamation is still a challenge, especially in languages with manual memory management such as C++. In such settings, not only memory has to be safely reclaimed, but also memory usage must remain bounded. Otherwise, memory can be exhausted, which violates progress properties.

Wait-free data structures are critical in latency-sensitive applications, as they offer the strongest progress property: all threads make progress in a bounded number of steps. Although they were historically slower and more tedious to implement than their lock-free counterparts, they are now gaining more traction due to a number of techniques such as Kogan and Petrank's fast-path-slow-path methodology.

Wait-free memory reclamation, until recently, remained a challenge since existing methodologies cannot be directly applied to the memory reclamation problem. One way to address the challenge is to use non-blocking techniques such as Hazard Pointers or Hazard Eras but modify data structures, e.g., use a "normalized" Timnat and Petrank's form. The "normalized" form guarantees that any operation that does not make progress can be restarted. The process of normalization has several limitations, e.g., requires that only CAS (compare-and-swap) operations are used by data structures. However, there is a growing interest in using specialized instructions such as FAA (fetch-and-add) for which no general normalization methodology exists.

What if there was a more general way to organize reclamation in wait-free data structures regardless of their presentation? A recent algorithm, WFE (Wait-Free Eras), achieves exactly that by extending (lock-free) Hazard Eras.

In this talk, we discuss the memory reclamation problem, existing techniques, and how a recent wait-free WFE technique is constructed. We discuss what key challenges WFE solves so that it can be universally applied regardless of the data structure organization.

developer programming

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

How long does it take to develop/build an app?

This article covers A-Z about the mobile and web app development process and answers your question on how long does it take to develop/build an app.

Developer Career Path: To Become a Team Lead or Stay a Developer?

For a developer, becoming a team leader can be a trap or open up opportunities for creating software. Two years ago, when I was a developer, ... by Oleg Sklyarov, Fullstack Developer at Skyeng company

Tracking a Developer’s Journey From Documentation Visit

Measuring website activity provides only half the story. See how to best track the developer's journey and what funnel stages makes sense for API-first products

Offshore Software Development - Best Practices

To make the most out of the benefits of offshore software development, you should understand the crucial factors that affect offshore development.

Hire Ruby on Rails Developer | Hire RoR Developer

#1 Ruby on Rails development company. Hire Ruby on rails developer or a team to build secure, scalable and complex web solutions with a quick turnaround time.