MXS-2346 Ttl should be stored as milliseconds
cacheconfig.hh had not been pushed earlier.
This commit is contained in:
8
server/modules/filter/cache/cacheconfig.cc
vendored
8
server/modules/filter/cache/cacheconfig.cc
vendored
@ -34,24 +34,24 @@ config::ParamString CacheConfig::s_storage_options(
|
|||||||
"\"\""
|
"\"\""
|
||||||
);
|
);
|
||||||
|
|
||||||
config::ParamDuration<std::chrono::seconds> CacheConfig::s_hard_ttl(
|
config::ParamDuration<std::chrono::milliseconds> CacheConfig::s_hard_ttl(
|
||||||
&s_specification,
|
&s_specification,
|
||||||
"hard_ttl",
|
"hard_ttl",
|
||||||
"Hard time to live; the maximum amount of time the cached result is "
|
"Hard time to live; the maximum amount of time the cached result is "
|
||||||
"used before it is discarded and the result is fetched from the backend. "
|
"used before it is discarded and the result is fetched from the backend. "
|
||||||
"See also 'soft_ttl'.",
|
"See also 'soft_ttl'.",
|
||||||
mxs::config::INTERPRET_AS_SECONDS,
|
mxs::config::INTERPRET_AS_SECONDS,
|
||||||
std::chrono::seconds { 0 }
|
std::chrono::milliseconds { 0 }
|
||||||
);
|
);
|
||||||
|
|
||||||
config::ParamDuration<std::chrono::seconds> CacheConfig::s_soft_ttl(
|
config::ParamDuration<std::chrono::milliseconds> CacheConfig::s_soft_ttl(
|
||||||
&s_specification,
|
&s_specification,
|
||||||
"soft_ttl",
|
"soft_ttl",
|
||||||
"Soft time to live; the maximum amount of time the cached result is "
|
"Soft time to live; the maximum amount of time the cached result is "
|
||||||
"used before the first client querying for the result is used for refreshing "
|
"used before the first client querying for the result is used for refreshing "
|
||||||
"the cached data from the backend. See also 'hard_ttl'.",
|
"the cached data from the backend. See also 'hard_ttl'.",
|
||||||
mxs::config::INTERPRET_AS_SECONDS,
|
mxs::config::INTERPRET_AS_SECONDS,
|
||||||
std::chrono::seconds { 0 }
|
std::chrono::milliseconds { 0 }
|
||||||
);
|
);
|
||||||
|
|
||||||
config::ParamCount CacheConfig::s_max_resultset_rows(
|
config::ParamCount CacheConfig::s_max_resultset_rows(
|
||||||
|
92
server/modules/filter/cache/cacheconfig.hh
vendored
Normal file
92
server/modules/filter/cache/cacheconfig.hh
vendored
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018 MariaDB Corporation Ab
|
||||||
|
*
|
||||||
|
* Use of this software is governed by the Business Source License included
|
||||||
|
* in the LICENSE.TXT file and at www.mariadb.com/bsl11.
|
||||||
|
*
|
||||||
|
* Change Date: 2022-01-01
|
||||||
|
*
|
||||||
|
* On the date above, in accordance with the Business Source License, use
|
||||||
|
* of this software will be governed by version 2 or later of the General
|
||||||
|
* Public License.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <maxscale/ccdefs.hh>
|
||||||
|
#include <maxscale/config2.hh>
|
||||||
|
#include "cache_storage_api.hh"
|
||||||
|
|
||||||
|
typedef enum cache_selects
|
||||||
|
{
|
||||||
|
CACHE_SELECTS_ASSUME_CACHEABLE,
|
||||||
|
CACHE_SELECTS_VERIFY_CACHEABLE,
|
||||||
|
} cache_selects_t;
|
||||||
|
|
||||||
|
const cache_selects_t CACHE_DEFAULT_SELECTS = CACHE_SELECTS_ASSUME_CACHEABLE;
|
||||||
|
|
||||||
|
typedef enum cache_in_trxs
|
||||||
|
{
|
||||||
|
// Do NOT change the order. Code relies upon NEVER < READ_ONLY < ALL.
|
||||||
|
CACHE_IN_TRXS_NEVER,
|
||||||
|
CACHE_IN_TRXS_READ_ONLY,
|
||||||
|
CACHE_IN_TRXS_ALL,
|
||||||
|
} cache_in_trxs_t;
|
||||||
|
|
||||||
|
const cache_thread_model CACHE_DEFAULT_THREAD_MODEL = CACHE_THREAD_MODEL_ST;
|
||||||
|
|
||||||
|
|
||||||
|
class CacheConfig : public config::Configuration
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CacheConfig();
|
||||||
|
~CacheConfig();
|
||||||
|
|
||||||
|
CacheConfig(const CacheConfig&) = delete;
|
||||||
|
CacheConfig& operator = (const CacheConfig&) = delete;
|
||||||
|
|
||||||
|
using milliseconds = std::chrono::milliseconds;
|
||||||
|
|
||||||
|
config::String storage;
|
||||||
|
config::String storage_options;
|
||||||
|
config::Duration<milliseconds> hard_ttl;
|
||||||
|
config::Duration<milliseconds> soft_ttl;
|
||||||
|
config::Count max_resultset_rows;
|
||||||
|
config::Size max_resultset_size;
|
||||||
|
config::Count max_count;
|
||||||
|
config::Size max_size;
|
||||||
|
config::Path rules;
|
||||||
|
config::BitMask debug;
|
||||||
|
config::Enum<cache_thread_model_t> thread_model;
|
||||||
|
config::Enum<cache_selects_t> selects;
|
||||||
|
config::Enum<cache_in_trxs_t> cache_in_trxs;
|
||||||
|
config::Bool enabled;
|
||||||
|
char* zStorage_options { nullptr}; /**< Raw options for storage module. */
|
||||||
|
char** storage_argv { nullptr }; /**< Cooked options for storage module. */
|
||||||
|
int storage_argc { 0 }; /**< Number of cooked options. */
|
||||||
|
|
||||||
|
static const config::Specification& specification()
|
||||||
|
{
|
||||||
|
return s_specification;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool configure() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
static config::Specification s_specification;
|
||||||
|
|
||||||
|
static config::ParamString s_storage;
|
||||||
|
static config::ParamString s_storage_options;
|
||||||
|
static config::ParamDuration<milliseconds> s_hard_ttl;
|
||||||
|
static config::ParamDuration<milliseconds> s_soft_ttl;
|
||||||
|
static config::ParamCount s_max_resultset_rows;
|
||||||
|
static config::ParamSize s_max_resultset_size;
|
||||||
|
static config::ParamCount s_max_count;
|
||||||
|
static config::ParamSize s_max_size;
|
||||||
|
static config::ParamPath s_rules;
|
||||||
|
static config::ParamBitMask s_debug;
|
||||||
|
static config::ParamEnum<cache_thread_model_t> s_thread_model;
|
||||||
|
static config::ParamEnum<cache_selects_t> s_selects;
|
||||||
|
static config::ParamEnum<cache_in_trxs_t> s_cache_in_trxs;
|
||||||
|
static config::ParamBool s_enabled;
|
||||||
|
};
|
Reference in New Issue
Block a user