26#ifndef TEMPTABLE_SHARDED_KV_STORE_H
27#define TEMPTABLE_SHARDED_KV_STORE_H
63template <
size_t N_SHARDS,
typename Lock = std::shared_timed_mutex,
73 static_assert(N_SHARDS && !(N_SHARDS & (N_SHARDS - 1)),
74 "N_SHARDS template parameter must be a power of two.");
Key-value store, a convenience wrapper class which models a thread-safe dictionary type.
Definition: kv_store.h:60
Sharded key-value store, a convenience wrapper class around Key_value_store that creates N_SHARDS ins...
Definition: sharded_kv_store.h:67
std::array< L1_dcache_aligned_kv_store, N_SHARDS > m_kv_store_shard
N_SHARDS instances of Key_value_store's.
Definition: sharded_kv_store.h:89
Key_value_store< Lock, KeyValueImpl > & operator[](size_t thd_id)
Returns a reference to one of the underlying Key_value_store instances.
Definition: sharded_kv_store.h:96
static constexpr size_t MODULO_MASK
Check whether all compile-time pre-conditions are set.
Definition: sharded_kv_store.h:78
TempTable key-value store implementation.
Definition: allocator.h:44
constexpr bool DEBUG_BUILD
Store build-type information into the constexpr expression.
Definition: constants.h:75
constexpr size_t L1_DCACHE_SIZE
Store L1-dcache size information into the constexpr expression.
Definition: constants.h:81
std::unordered_map< Key, Value, Hash, Key_equal, ut::allocator< std::pair< const Key, Value > > > unordered_map
Definition: ut0new.h:2897
TempTable sharded key-value store logger implementation.
In the event of inability to express ourselves with something like std::array<alignas<N> Key_value_st...
Definition: sharded_kv_store.h:84
Key_value_store< Lock, KeyValueImpl > shard
Definition: sharded_kv_store.h:85
Default Sharded_key_value_store logging facility which turns to no-op in non-debug builds.
Definition: sharded_kv_store_logger.h:41