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;
|
config.max_sescmd_history = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.optimistic_trx)
|
||||||
|
{
|
||||||
|
// Optimistic transaction routing requires transaction replay
|
||||||
|
config.transaction_replay = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (config.transaction_replay)
|
if (config.transaction_replay)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@ -482,6 +488,7 @@ extern "C" MXS_MODULE *MXS_CREATE_MODULE()
|
|||||||
{"delayed_retry_timeout", MXS_MODULE_PARAM_COUNT, "10"},
|
{"delayed_retry_timeout", MXS_MODULE_PARAM_COUNT, "10"},
|
||||||
{"transaction_replay", MXS_MODULE_PARAM_BOOL, "false"},
|
{"transaction_replay", MXS_MODULE_PARAM_BOOL, "false"},
|
||||||
{"transaction_replay_max_size", MXS_MODULE_PARAM_COUNT, "1Mi"},
|
{"transaction_replay_max_size", MXS_MODULE_PARAM_COUNT, "1Mi"},
|
||||||
|
{"optimistic_trx", MXS_MODULE_PARAM_BOOL, "false"},
|
||||||
{MXS_END_MODULE_PARAMS}
|
{MXS_END_MODULE_PARAMS}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -164,7 +164,8 @@ struct Config
|
|||||||
delayed_retry(config_get_bool(params, "delayed_retry")),
|
delayed_retry(config_get_bool(params, "delayed_retry")),
|
||||||
delayed_retry_timeout(config_get_integer(params, "delayed_retry_timeout")),
|
delayed_retry_timeout(config_get_integer(params, "delayed_retry_timeout")),
|
||||||
transaction_replay(config_get_bool(params, "transaction_replay")),
|
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)
|
if (causal_reads)
|
||||||
{
|
{
|
||||||
@ -196,6 +197,7 @@ struct Config
|
|||||||
uint64_t delayed_retry_timeout; /**< How long to delay until an error is returned */
|
uint64_t delayed_retry_timeout; /**< How long to delay until an error is returned */
|
||||||
bool transaction_replay; /**< Replay failed transactions */
|
bool transaction_replay; /**< Replay failed transactions */
|
||||||
size_t trx_max_size; /**< Max transaction size for replaying */
|
size_t trx_max_size; /**< Max transaction size for replaying */
|
||||||
|
bool optimistic_trx; /**< Enable optimistic transactions */
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user