summaryrefslogtreecommitdiff
path: root/storage/innobase/trx/trx0trx.cc
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 /storage/innobase/trx/trx0trx.cc
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 'storage/innobase/trx/trx0trx.cc')
-rw-r--r--storage/innobase/trx/trx0trx.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/storage/innobase/trx/trx0trx.cc b/storage/innobase/trx/trx0trx.cc
index 0dbd985b6c3..d4cd020b321 100644
--- a/storage/innobase/trx/trx0trx.cc
+++ b/storage/innobase/trx/trx0trx.cc
@@ -1804,6 +1804,12 @@ trx_commit_in_memory(
}
trx->commit_lsn = lsn;
+
+ /* Tell server some activity has happened, since the trx
+ does changes something. Background utility threads like
+ master thread, purge thread or page_cleaner thread might
+ have some work to do. */
+ srv_active_wake_master_thread();
}
ut_ad(!trx->rsegs.m_noredo.undo);