MXS-1475 Add 'enabled' parameter to Cache filter

With 'enabled' it can be specified whether the cache should initially
be enabled or disabled. Useful as it is now possible to enable/disable
the cache dynamically.
This commit is contained in:
Johan Wikman
2018-02-27 21:41:08 +02:00
parent 71c8a327b2
commit 090892db4c
3 changed files with 10 additions and 1 deletions

View File

@ -243,6 +243,11 @@ extern "C" MXS_MODULE* MXS_CREATE_MODULE()
MXS_MODULE_OPT_NONE,
parameter_cache_in_trxs_values
},
{
"enabled",
MXS_MODULE_PARAM_BOOL,
CACHE_DEFAULT_ENABLED
},
{MXS_END_MODULE_PARAMS}
}
};
@ -351,6 +356,7 @@ bool CacheFilter::process_params(char **pzOptions, MXS_CONFIG_PARAMETER *ppParam
config.cache_in_trxs = static_cast<cache_in_trxs_t>(config_get_enum(ppParams,
"cache_in_transactions",
parameter_cache_in_trxs_values));
config.enabled = config_get_bool(ppParams, "enabled");
if (!config.storage)
{

View File

@ -60,6 +60,8 @@
#define CACHE_DEFAULT_STORAGE "storage_inmemory"
// Transaction behaviour
#define CACHE_DEFAULT_CACHE_IN_TRXS "all_transactions"
// Enabled
#define CACHE_DEFAULT_ENABLED "true"
typedef enum cache_selects
{
@ -92,4 +94,5 @@ typedef struct cache_config
cache_thread_model_t thread_model; /**< Thread model. */
cache_selects_t selects; /**< Assume/verify that selects are cacheable. */
cache_in_trxs_t cache_in_trxs; /**< To cache or not to cache inside transactions. */
bool enabled; /**< Whether the cache is enabled or not. */
} CACHE_CONFIG;

View File

@ -187,7 +187,7 @@ CacheFilterSession::CacheFilterSession(MXS_SESSION* pSession, Cache* pCache, cha
, m_zUseDb(NULL)
, m_refreshing(false)
, m_is_read_only(true)
, m_enabled(true) // TODO: Add configuration variable for initial mode.
, m_enabled(pCache->config().enabled)
, m_variable_added(false)
{
m_key.data = 0;