23#ifndef DD_CACHE__SHARED_DICTIONARY_CACHE_INCLUDED
24#define DD_CACHE__SHARED_DICTIONARY_CACHE_INCLUDED
173 template <
typename T>
178 template <
typename T>
195 static void reset(
bool keep_dd_entities);
209 template <
typename K,
typename T>
211 return m_map<T>()->available(
key);
236 template <
typename K,
typename T>
261 template <typename K, typename T>
263 const T **
object) const;
278 template <typename T>
292 template <typename T>
294 m_map<T>()->release(e);
309 template <
typename T>
311 m_map<T>()->drop(element);
328 template <
typename K,
typename T>
330 m_map<T>()->drop_if_present(
key);
346 template <
typename T>
348 m_map<T>()->replace(element,
object);
357 template <
typename T>
360 fprintf(stderr,
"================================\n");
361 fprintf(stderr,
"Shared dictionary cache\n");
363 fprintf(stderr,
"================================\n");
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:33
Implementation of a dictionary client.
Definition: cache_element.h:68
Definition: shared_dictionary_cache.h:62
Shared_multi_map< Resource_group > m_resource_group_map
Definition: shared_dictionary_cache.h:85
bool get(THD *thd, const K &key, Cache_element< T > **element)
Get an element from the cache, given the key.
Definition: shared_dictionary_cache.cc:91
Shared_multi_map< Spatial_reference_system > * m_map(Type_selector< Spatial_reference_system >)
Definition: shared_dictionary_cache.h:122
Shared_multi_map< Schema > m_schema_map
Definition: shared_dictionary_cache.h:87
Shared_multi_map< Routine > m_routine_map
Definition: shared_dictionary_cache.h:86
Shared_multi_map< Charset > m_charset_map
Definition: shared_dictionary_cache.h:81
static void shutdown()
Definition: shared_dictionary_cache.cc:63
static Shared_dictionary_cache * instance()
Definition: shared_dictionary_cache.cc:39
Shared_multi_map< Routine > * m_map(Type_selector< Routine >)
Definition: shared_dictionary_cache.h:116
const Shared_multi_map< Column_statistics > * m_map(Type_selector< Column_statistics >) const
Definition: shared_dictionary_cache.h:140
const Shared_multi_map< Charset > * m_map(Type_selector< Charset >) const
Definition: shared_dictionary_cache.h:134
static const size_t resource_group_capacity
Maximum number of DD resource group objects to be kept in cache.
Definition: shared_dictionary_cache.h:78
void drop(Cache_element< T > *element)
Delete an element from the cache.
Definition: shared_dictionary_cache.h:310
const Shared_multi_map< Tablespace > * m_map(Type_selector< Tablespace >) const
Definition: shared_dictionary_cache.h:151
Shared_multi_map< Collation > * m_map(Type_selector< Collation >)
Definition: shared_dictionary_cache.h:106
Shared_dictionary_cache()=default
static const size_t event_capacity
Definition: shared_dictionary_cache.h:71
const Shared_multi_map< T > * m_map() const
Definition: shared_dictionary_cache.h:179
Shared_multi_map< Abstract_table > * m_map(Type_selector< Abstract_table >)
Overloaded functions to use for selecting map instance based on a key type.
Definition: shared_dictionary_cache.h:100
Shared_multi_map< Tablespace > * m_map(Type_selector< Tablespace >)
Definition: shared_dictionary_cache.h:126
Shared_multi_map< Schema > * m_map(Type_selector< Schema >)
Definition: shared_dictionary_cache.h:119
const Shared_multi_map< Collation > * m_map(Type_selector< Collation >) const
Definition: shared_dictionary_cache.h:137
Shared_multi_map< Column_statistics > * m_map(Type_selector< Column_statistics >)
Definition: shared_dictionary_cache.h:109
bool get_uncached(THD *thd, const K &key, enum_tx_isolation isolation, const T **object) const
Read an object directly from disk, given the key.
Definition: shared_dictionary_cache.cc:109
Shared_multi_map< Column_statistics > m_column_stat_map
Definition: shared_dictionary_cache.h:83
static const size_t charset_capacity
Definition: shared_dictionary_cache.h:70
Shared_multi_map< Spatial_reference_system > m_spatial_reference_system_map
Definition: shared_dictionary_cache.h:88
static bool reset_tables_and_tablespaces(THD *thd)
Definition: shared_dictionary_cache.cc:84
Shared_multi_map< T > * m_map()
Template function to get a map instance.
Definition: shared_dictionary_cache.h:174
Shared_multi_map< Abstract_table > m_abstract_table_map
Definition: shared_dictionary_cache.h:80
Shared_multi_map< Charset > * m_map(Type_selector< Charset >)
Definition: shared_dictionary_cache.h:103
const Shared_multi_map< Spatial_reference_system > * m_map(Type_selector< Spatial_reference_system >) const
Definition: shared_dictionary_cache.h:147
void drop_if_present(const K &key)
Delete an element corresponding to the key from the cache if exists.
Definition: shared_dictionary_cache.h:329
Shared_multi_map< Resource_group > * m_map(Type_selector< Resource_group >)
Definition: shared_dictionary_cache.h:113
static void init()
Definition: shared_dictionary_cache.cc:44
const Shared_multi_map< Abstract_table > * m_map(Type_selector< Abstract_table >) const
Definition: shared_dictionary_cache.h:130
static const size_t spatial_reference_system_capacity
Definition: shared_dictionary_cache.h:72
void release(Cache_element< T > *e)
Release an element used by a client.
Definition: shared_dictionary_cache.h:293
bool available(const K &key)
Check if an element with the given key is available.
Definition: shared_dictionary_cache.h:210
static const size_t column_statistics_capacity
Definition: shared_dictionary_cache.h:69
const Shared_multi_map< Resource_group > * m_map(Type_selector< Resource_group >) const
Definition: shared_dictionary_cache.h:154
void replace(Cache_element< T > *element, const T *object)
Replace the object and re-create the keys for an element.
Definition: shared_dictionary_cache.h:347
Shared_multi_map< Tablespace > m_tablespace_map
Definition: shared_dictionary_cache.h:89
Shared_multi_map< Collation > m_collation_map
Definition: shared_dictionary_cache.h:82
void dump() const
Debug dump of a shared cache partition to stderr.
Definition: shared_dictionary_cache.h:358
Shared_multi_map< Event > * m_map(Type_selector< Event >)
Definition: shared_dictionary_cache.h:112
void put(const T *object, Cache_element< T > **element)
Add an object to the shared cache.
Definition: shared_dictionary_cache.cc:121
const Shared_multi_map< Schema > * m_map(Type_selector< Schema >) const
Definition: shared_dictionary_cache.h:144
static const size_t collation_capacity
Definition: shared_dictionary_cache.h:68
static void reset(bool keep_dd_entities)
Definition: shared_dictionary_cache.cc:77
Shared_multi_map< Event > m_event_map
Definition: shared_dictionary_cache.h:84
Implementation of a shared set of maps for a given object type.
Definition: shared_multi_map.h:117
#define MY_COMPILER_DIAGNOSTIC_PUSH()
save the compiler's diagnostic (enabled warnings, errors, ...) state
Definition: my_compiler.h:295
#define MY_COMPILER_DIAGNOSTIC_POP()
restore the compiler's diagnostic (enabled warnings, errors, ...) state
Definition: my_compiler.h:296
#define MY_COMPILER_CLANG_WORKAROUND_TPARAM_DOCBUG()
ignore -Wdocumentation compiler warnings for @tparam.
Definition: my_compiler.h:318
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:42
required string key
Definition: replication_asynchronous_connection_failover.proto:59
enum_tx_isolation
Definition: handler.h:2984
Definition: shared_dictionary_cache.h:92