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:
		
							
								
								
									
										6
									
								
								server/modules/filter/cache/cachefilter.cc
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								server/modules/filter/cache/cachefilter.cc
									
									
									
									
										vendored
									
									
								
							@ -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)
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								server/modules/filter/cache/cachefilter.h
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								server/modules/filter/cache/cachefilter.h
									
									
									
									
										vendored
									
									
								
							@ -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;
 | 
			
		||||
 | 
			
		||||
@ -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;
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user