MXS-1549: Add optimistic_trx parameter

The optimistic_trx parameter will control whether transactions are assumed
to be read-only and will be optimistically executed on slave
servers. Currently, the parameter does nothing.
This commit is contained in:
Markus Mäkelä
2018-06-24 10:32:44 +03:00
parent d6a964304b
commit af45006567
2 changed files with 10 additions and 1 deletions

View File

@ -290,6 +290,12 @@ RWSplit* RWSplit::create(SERVICE *service, char **options)
config.max_sescmd_history = 0;
}
if (config.optimistic_trx)
{
// Optimistic transaction routing requires transaction replay
config.transaction_replay = true;
}
if (config.transaction_replay)
{
/**
@ -482,6 +488,7 @@ extern "C" MXS_MODULE *MXS_CREATE_MODULE()
{"delayed_retry_timeout", MXS_MODULE_PARAM_COUNT, "10"},
{"transaction_replay", MXS_MODULE_PARAM_BOOL, "false"},
{"transaction_replay_max_size", MXS_MODULE_PARAM_COUNT, "1Mi"},
{"optimistic_trx", MXS_MODULE_PARAM_BOOL, "false"},
{MXS_END_MODULE_PARAMS}
}
};

View File

@ -164,7 +164,8 @@ struct Config
delayed_retry(config_get_bool(params, "delayed_retry")),
delayed_retry_timeout(config_get_integer(params, "delayed_retry_timeout")),
transaction_replay(config_get_bool(params, "transaction_replay")),
trx_max_size(config_get_size(params, "transaction_replay_max_size"))
trx_max_size(config_get_size(params, "transaction_replay_max_size")),
optimistic_trx(config_get_bool(params, "optimistic_trx"))
{
if (causal_reads)
{
@ -196,6 +197,7 @@ struct Config
uint64_t delayed_retry_timeout; /**< How long to delay until an error is returned */
bool transaction_replay; /**< Replay failed transactions */
size_t trx_max_size; /**< Max transaction size for replaying */
bool optimistic_trx; /**< Enable optimistic transactions */
};
/**