Commit 9811d23b authored by Brandon Nesterenko's avatar Brandon Nesterenko

MDEV-33756: Deprecate binlog_optimize_thread_scheduling

The option binlog_optimize_thread_scheduling was initially added
to provide a safe alternative for the newly added binlog group
commit logic, such that when 0, it would disable a leader thread
from performing the binlog write for all transactions that are a
part of the group commit. Any problems related to the binlog group
commit optimization should be sorted out by now, so we can
deprecate-to-eventually-remove the option altogether.

This commit performs the deprecation, and the removal is tracked
by MDEV-33745. Note, as the option is only able to be provided
via configuration at startup time, users will not see a
deprecation message unless looking through the CLI help
message.

Reviewed By
============
Kristian Nielsen <knielsen@knielsen-hq.org>
Sergei Golubchik <serg@mariadb.org>
parent e6df06d4
...@@ -122,7 +122,9 @@ The following specify which files/extra groups are read (specified before remain ...@@ -122,7 +122,9 @@ The following specify which files/extra groups are read (specified before remain
thread, which can be slower at very high concurrency. thread, which can be slower at very high concurrency.
This option is mostly for testing one algorithm versus This option is mostly for testing one algorithm versus
the other, and it should not normally be necessary to the other, and it should not normally be necessary to
change it change it. This variable is deprecated and will be
removed in a future release. Deprecated, will be removed
in a future release.
(Defaults to on; use --skip-binlog-optimize-thread-scheduling to disable.) (Defaults to on; use --skip-binlog-optimize-thread-scheduling to disable.)
--binlog-row-event-max-size=# --binlog-row-event-max-size=#
The maximum size of a row-based binary log event in The maximum size of a row-based binary log event in
......
...@@ -465,7 +465,7 @@ COMMAND_LINE_ARGUMENT REQUIRED ...@@ -465,7 +465,7 @@ COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME BINLOG_OPTIMIZE_THREAD_SCHEDULING VARIABLE_NAME BINLOG_OPTIMIZE_THREAD_SCHEDULING
VARIABLE_SCOPE GLOBAL VARIABLE_SCOPE GLOBAL
VARIABLE_TYPE BOOLEAN VARIABLE_TYPE BOOLEAN
VARIABLE_COMMENT Run fast part of group commit in a single thread, to optimize kernel thread scheduling. On by default. Disable to run each transaction in group commit in its own thread, which can be slower at very high concurrency. This option is mostly for testing one algorithm versus the other, and it should not normally be necessary to change it VARIABLE_COMMENT Run fast part of group commit in a single thread, to optimize kernel thread scheduling. On by default. Disable to run each transaction in group commit in its own thread, which can be slower at very high concurrency. This option is mostly for testing one algorithm versus the other, and it should not normally be necessary to change it. This variable is deprecated and will be removed in a future release
NUMERIC_MIN_VALUE NULL NUMERIC_MIN_VALUE NULL
NUMERIC_MAX_VALUE NULL NUMERIC_MAX_VALUE NULL
NUMERIC_BLOCK_SIZE NULL NUMERIC_BLOCK_SIZE NULL
......
...@@ -505,7 +505,7 @@ COMMAND_LINE_ARGUMENT OPTIONAL ...@@ -505,7 +505,7 @@ COMMAND_LINE_ARGUMENT OPTIONAL
VARIABLE_NAME BINLOG_OPTIMIZE_THREAD_SCHEDULING VARIABLE_NAME BINLOG_OPTIMIZE_THREAD_SCHEDULING
VARIABLE_SCOPE GLOBAL VARIABLE_SCOPE GLOBAL
VARIABLE_TYPE BOOLEAN VARIABLE_TYPE BOOLEAN
VARIABLE_COMMENT Run fast part of group commit in a single thread, to optimize kernel thread scheduling. On by default. Disable to run each transaction in group commit in its own thread, which can be slower at very high concurrency. This option is mostly for testing one algorithm versus the other, and it should not normally be necessary to change it VARIABLE_COMMENT Run fast part of group commit in a single thread, to optimize kernel thread scheduling. On by default. Disable to run each transaction in group commit in its own thread, which can be slower at very high concurrency. This option is mostly for testing one algorithm versus the other, and it should not normally be necessary to change it. This variable is deprecated and will be removed in a future release
NUMERIC_MIN_VALUE NULL NUMERIC_MIN_VALUE NULL
NUMERIC_MAX_VALUE NULL NUMERIC_MAX_VALUE NULL
NUMERIC_BLOCK_SIZE NULL NUMERIC_BLOCK_SIZE NULL
......
...@@ -12658,12 +12658,13 @@ static SHOW_VAR binlog_status_vars_top[]= { ...@@ -12658,12 +12658,13 @@ static SHOW_VAR binlog_status_vars_top[]= {
static MYSQL_SYSVAR_BOOL( static MYSQL_SYSVAR_BOOL(
optimize_thread_scheduling, optimize_thread_scheduling,
opt_optimize_thread_scheduling, opt_optimize_thread_scheduling,
PLUGIN_VAR_READONLY, PLUGIN_VAR_READONLY | PLUGIN_VAR_DEPRECATED,
"Run fast part of group commit in a single thread, to optimize kernel " "Run fast part of group commit in a single thread, to optimize kernel "
"thread scheduling. On by default. Disable to run each transaction in group " "thread scheduling. On by default. Disable to run each transaction in group "
"commit in its own thread, which can be slower at very high concurrency. " "commit in its own thread, which can be slower at very high concurrency. "
"This option is mostly for testing one algorithm versus the other, and it " "This option is mostly for testing one algorithm versus the other, and it "
"should not normally be necessary to change it", "should not normally be necessary to change it. This variable is deprecated "
"and will be removed in a future release",
NULL, NULL,
NULL, NULL,
1); 1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment