Talk

Joint Lifetime and Access Synchronization Algorithm for Shared Dynamic Objects

  • In Russian

Familiar concepts are convenient for communication and understanding someone else's code, but what if they are not always the best solution? For example, if you have many objects whose lifetime is controlled through reference counter, and access to them using a mutex - can you do something better? Yes! you can reduce several RMW operations by reducing overheads, and you can also connect seqlock, thereby increasing the scalability of read operations. I present a joint concept, which can be called Lifex (LiFe-time management and mutual exclusive sycnhronization), where mutex is combined with reference and version counters. That gives birth to a completely new synchronization object with its own special properties. I will also tell you what performance can be seen on microbenchmarks and how to debug such synchronization algorithms using thread fuzzing technique.

 

Schedule