summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2020-08-19 11:18:56 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2020-08-19 11:18:56 +0300
commit309302a3dad5f06cb62b0846dcb8a3671d91ff29 (patch)
tree08bea0450995bb89ea713a81b0357c24fe647887 /extra
parent1509363970e9cb574005e3af560299c055dda983 (diff)
downloadmariadb-git-309302a3dad5f06cb62b0846dcb8a3671d91ff29.tar.gz
MDEV-23475 InnoDB performance regression for write-heavy workloads
In commit fe39d02f51b96536dccca7ff89faf05e13548877 (MDEV-20638) we removed some wake-up signaling of the master thread that should have been there, to ensure a steady log checkpointing workload. Common sense suggests that the commit omitted some necessary calls to srv_inc_activity_count(). But, an attempt to add the call to trx_flush_log_if_needed_low() as well as to reinstate the function innobase_active_small() did not restore the performance for the case where sync_binlog=1 is set. Therefore, we will revert the entire commit in MariaDB Server 10.2. In MariaDB Server 10.5, adding a srv_inc_activity_count() call to trx_flush_log_if_needed_low() did restore the performance, so we will not revert MDEV-20638 across all versions.
Diffstat (limited to 'extra')
-rw-r--r--extra/mariabackup/xtrabackup.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc
index 9b3d9f9ea39..4845f51e6b2 100644
--- a/extra/mariabackup/xtrabackup.cc
+++ b/extra/mariabackup/xtrabackup.cc
@@ -254,6 +254,12 @@ my_bool innobase_locks_unsafe_for_binlog;
my_bool innobase_rollback_on_timeout;
my_bool innobase_create_status_file;
+/* The following counter is used to convey information to InnoDB
+about server activity: in selects it is not sensible to call
+srv_active_wake_master_thread after each fetch or search, we only do
+it every INNOBASE_WAKE_INTERVAL'th step. */
+
+#define INNOBASE_WAKE_INTERVAL 32
ulong innobase_active_counter = 0;