Fix activity counter update in purge coordinator and workers

Description

The upstream fix for the Bug #30875956
"PURGE ACTIVITY IS TOO MUCH AT CPU% BOUND AND CAUSES IDLE OVERDRIVE"
coming from 5.7.31 and 8.0.21
(https://github.com/mysql/mysql-server/commit/e52529d2adecadf1fde929517bbc7a73da1ed086)
helped to reveal a problem with Percona improvement
"Server activity check fixes for page cleaner thread"
https://blueprints.launchpad.net/percona-server/+spec/xtradb-cleaner-srv-activity-fixes
https://bugs.mysql.com/bug.php?id=70500
(https://github.com/percona/percona-server/commit/05255ba87e77c46cc84b1611af2ab8dc0d32d51f)

In Oracle patch we now call "srv_wake_purge_thread_if_not_active()" from "srv_master_do_active_tasks()" which wakes up purge coordinator and because of the Percona improvement updates activity counter as a side effect. The combination of these two does not let flusher to do its job because activity counter is constantly changing and 'innodb_buffer_pool_pages_dirty' never goes to 0.

This causes https://perconadev.atlassian.net/browse/PS-3411#icft=PS-3411 part of the "innodb.percona_doublewrite" to fail with "Timeout in wait_condition.inc"

Environment

None

Attachments

1
  • 28 Jul 2020, 04:54 PM

Smart Checklist

Activity

Show:

Yura Sorokin July 28, 2020 at 4:54 PM

The following MTR test case helps to reveal the same problem without enabling parallel doublewrite.

Done

Details

Assignee

Reporter

Labels

Time tracking

3d 3h 15m logged

Fix versions

Affects versions

Priority

Smart Checklist

Created July 28, 2020 at 4:34 PM
Updated March 6, 2024 at 11:00 AM
Resolved August 4, 2020 at 8:18 AM