Markus Dreseler (Hasso Plattner Institute, Potsdam, Germany)
“For in-memory databases with Multi-Version Concurrency Control, many data structures are written only once. Requirements other than persistent and consistent support for updates become more important: (1) Minimizing the code changes for NVM support and instant recovery, (2) Hiding the intricacies of the NVM-aware implementation from non-NVM-aware developers, and (3) Enabling the use of data structures that do not yet have an NVM equivalent.
In our talk, we will show how the write-once property of these data structures enables us to use existing containers from the C++ standard library. For this, we use polymorphic memory resources, fancy pointers, and representation-aware containers. As a result, we can make existing code NVM-aware with only little changes at the point of creation and no changes at the point of access. We will show code both from the implementation and from the perspective of a user. Additionally, we will present benchmarks performed on Intel Optane PM, showing that the runtime is dominated by the cost of persistent allocations but is still considerably lower than that of a fully NVM-aware implementation, which provides unused consistency guarantees.”