Presenters: Szymon Romik, Igor Chorazewicz
Presentation: [ Ссылка ]
"Abstract:
Persistent Memory is a paradigm shifting technology, however, writing software for it may be counterintuitive at times. To make PMEM programming feel more idiomatic in C++, we have developed libpmemobj-cpp, a library that is bundled with a suite of libraries called Persistent Memory Development Kit (PMDK). Key components of this library constitute its persistent containers, resembling the ones in the Standard Template Library (STL) in C++. This talk will present the main concepts, design choices, and issues related to both single-threaded and concurrent data structures for persistent memory.
Outline draft:
1. Introduction:
- Why PMDK?
- Why libpmemobj and why libpmemobj-cpp (metaprogramming)?
- Main features of the library:
o persistent allocator
o persistent_ptr
o transactional API
2. Persistent containers:
- Why containers?
- Why not std::allocator and standard limitations
- Persistent containers API and design decisions:
o Atomicity and consistency + brief description of libpmemobj’s transactions
o implicit snapshotting, iterators
o compatibility with STL’s algorithms
3. Current status of persistent containers set:
- Single threaded and concurrent containers (and pmemkv engines)
- radix_tree
4. Challenges encountered:
- Lock-free algorithms and transactions
- Pointer dereference performance (PMEMoid vs self_relative_ptr)
- Persistent TLS
- Reducing number of allocations (string_view/inline_string)
5. Future:
- pmem::obj::map, pmem::obj::unordered_map, pmem::obj::priority_queue
- Call to action (few words about pmemkv)
"
Ещё видео!