27#ifndef TEMPTABLE_SHARDED_KV_STORE_H
28#define TEMPTABLE_SHARDED_KV_STORE_H
64template <
size_t N_SHARDS,
typename Lock = std::shared_timed_mutex,
74 static_assert(N_SHARDS && !(N_SHARDS & (N_SHARDS - 1)),
75 "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:61
Sharded key-value store, a convenience wrapper class around Key_value_store that creates N_SHARDS ins...
Definition: sharded_kv_store.h:68
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:90
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:97
static constexpr size_t MODULO_MASK
Check whether all compile-time pre-conditions are set.
Definition: sharded_kv_store.h:79
TempTable key-value store implementation.
Definition: allocator.h:48
constexpr bool DEBUG_BUILD
Store build-type information into the constexpr expression.
Definition: constants.h:76
constexpr size_t L1_DCACHE_SIZE
Store L1-dcache size information into the constexpr expression.
Definition: constants.h:82
std::unordered_map< Key, Value, Hash, Key_equal, ut::allocator< std::pair< const Key, Value > > > unordered_map
Definition: ut0new.h:2900
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:85
Key_value_store< Lock, KeyValueImpl > shard
Definition: sharded_kv_store.h:86
Default Sharded_key_value_store logging facility which turns to no-op in non-debug builds.
Definition: sharded_kv_store_logger.h:42