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:
@ -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}
|
||||
}
|
||||
};
|
||||
|
@ -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 */
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user