MySQL 8.3.0
Source Code Documentation
reference_caching.h File Reference

Go to the source code of this file.

Classes

struct  s_mysql_reference_caching_channel
 A reference caching channel service. More...
 
struct  s_mysql_reference_caching_channel_ignore_list
 A service to maintain an "ignore list" for reference caches. More...
 
struct  s_mysql_reference_caching_cache
 Reference cache service. More...
 

Typedefs

typedef struct reference_caching_channel_imp * reference_caching_channel
 Handle for "producer channels". More...
 
typedef struct reference_caching_cache_imp * reference_caching_cache
 A handle of a "reference cache". More...
 
typedef struct s_mysql_reference_caching_channel mysql_service_reference_caching_channel_t
 A reference caching channel service. More...
 
typedef struct s_mysql_reference_caching_channel_ignore_list mysql_service_reference_caching_channel_ignore_list_t
 A service to maintain an "ignore list" for reference caches. More...
 
typedef struct s_mysql_reference_caching_cache mysql_service_reference_caching_cache_t
 Reference cache service. More...
 

Typedef Documentation

◆ mysql_service_reference_caching_cache_t

Reference cache service.

See the reference_caching_channel service for details on how to operate this.

Manages thread caches for event producer threads.

◆ mysql_service_reference_caching_channel_ignore_list_t

A service to maintain an "ignore list" for reference caches.

When a service implementation is on that ignore list it will never be added to any reference caches when they're filled in even if the service implementation is in the registry and implements the service the reference caching channel is operating on.

This is just a list of "implementations", i.e. the part of the service implementation name after the dot. The channel already has the name of the service so a full implementation name can be constructed if needed.

◆ reference_caching_cache

typedef struct reference_caching_cache_imp* reference_caching_cache

A handle of a "reference cache".

This is created by all events producer threads when they start and is maintained throughout their lifetimes. Operations on that are not thread safe and are assumed to be done by a single thread.

◆ reference_caching_channel

typedef struct reference_caching_channel_imp* reference_caching_channel

Handle for "producer channels".

A producer channel is the singleton used to emit events that are subject to reference caching. This is needed to hold a flag that will trigger forced invalidation of all caches in a particular channel on their next access. Multi threaded access is expected to be safe and lock less to this handle once it's instantiated.