PMDK C++ bindings  1.13.0-git107.g7e59f08f
This is the C++ bindings documentation for PMDK's libpmemobj.
concurrent_hash_map.hpp File Reference

A persistent version of concurrent hash map implementation Ref: https://arxiv.org/abs/1509.02235. More...

#include <libpmemobj++/detail/atomic_backoff.hpp>
#include <libpmemobj++/detail/common.hpp>
#include <libpmemobj++/detail/pair.hpp>
#include <libpmemobj++/detail/template_helpers.hpp>
#include <libpmemobj++/defrag.hpp>
#include <libpmemobj++/make_persistent.hpp>
#include <libpmemobj++/mutex.hpp>
#include <libpmemobj++/p.hpp>
#include <libpmemobj++/persistent_ptr.hpp>
#include <libpmemobj++/transaction.hpp>
#include <libpmemobj++/detail/persistent_pool_ptr.hpp>
#include <libpmemobj++/shared_mutex.hpp>
#include <libpmemobj++/detail/enumerable_thread_specific.hpp>
#include <atomic>
#include <cassert>
#include <functional>
#include <initializer_list>
#include <iterator>
#include <memory>
#include <mutex>
#include <thread>
#include <type_traits>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  std::hash< pmem::obj::p< T > >
 Specialization of std::hash for p<T> More...
 
class  pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType >
 Persistent memory aware implementation of Intel TBB concurrent_hash_map More...
 
class  pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType >::bucket_accessor
 Bucket accessor is to find, rehash, acquire a lock, and access a bucket. More...
 
class  pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType >::serial_bucket_accessor
 Serial bucket accessor used to access bucket in a serial operations. More...
 
class  pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType >::const_accessor
 Combines data access, locking, and garbage collection. More...
 
class  pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType >::accessor
 Allows write access to elements and combines data access, locking, and garbage collection. More...
 
class  pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType >::mutex_vector
 Vector of locks to be unlocked at the destruction time. More...
 

Namespaces

 pmem
 Persistent memory namespace.
 
 pmem::obj
 Main libpmemobj namespace.
 

Typedefs

template<typename ScopedLockType >
using pmem::obj::concurrent_hash_map_internal::scoped_lock_upgrade_to_writer = decltype(std::declval< ScopedLockType >().upgrade_to_writer())
 
template<typename ScopedLockType >
using pmem::obj::concurrent_hash_map_internal::scoped_lock_has_upgrade_to_writer = detail::supports< ScopedLockType, scoped_lock_upgrade_to_writer >
 
template<typename ScopedLockType >
using pmem::obj::concurrent_hash_map_internal::scoped_lock_downgrade_to_reader = decltype(std::declval< ScopedLockType >().downgrade_to_reader())
 
template<typename ScopedLockType >
using pmem::obj::concurrent_hash_map_internal::scoped_lock_has_downgrade_to_reader = detail::supports< ScopedLockType, scoped_lock_downgrade_to_reader >
 

Functions

template<typename Key , typename T , typename Hash , typename KeyEqual , typename MutexType , typename ScopedLockType >
bool pmem::obj::operator== (const concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &a, const concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &b)
 
template<typename Key , typename T , typename Hash , typename KeyEqual , typename MutexType , typename ScopedLockType >
bool pmem::obj::operator!= (const concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &a, const concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &b)
 
template<typename Key , typename T , typename Hash , typename KeyEqual , typename MutexType , typename ScopedLockType >
void pmem::obj::swap (concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &a, concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &b)
 

Detailed Description

A persistent version of concurrent hash map implementation Ref: https://arxiv.org/abs/1509.02235.