Uploaded image for project: 'Percona Server for MySQL'
  1. Percona Server for MySQL
  2. PS-3360

LP #1534114: Busy server prefers LRU flushing over flush list flushing too strongly

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Done
    • Priority: Low
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None

      Description

      **Reported in Launchpad by Laurynas Biveinis last update 18-01-2016 11:28:28

      With the current 5.7 version of the fix for https://bugs.launchpad.net/percona-server/+bug/1234562 / http://bugs.mysql.com/bug.php?id=70500, the main cleaner coordinator thread loop looks like

      ... /* Flush LRU:*/
      pc_flush(0, 0, &n_processed_lru, &n_flushed_list);
      ut_ad(n_flushed_list == 0);
      ... /* LRU iteration took too long */
      if (ut_time_ms() > next_loop_time)
      ret_sleep = OS_SYNC_TIME_EXCEEDED;
      ... /* Sync flush? */
      else if (ret_sleep != OS_SYNC_TIME_EXCEEDED
      && srv_flush_sync
      && buf_flush_sync_lsn > 0)

      { ... /* adaptive flush? */ }

      else if (srv_check_activity(last_activity))

      { ... /* idle flush? */ }

      else if (ret_sleep == OS_SYNC_TIME_EXCEEDED)

      { ... }

      else

      { /* no activity, but woken up by event */ }

      Thus, if LRU took too long, we won't go into sync flush, even if that is requested, in which case it will cause performance degradation.

        Smart Checklist

          Attachments

            Activity

              People

              Assignee:
              Unassigned
              Reporter:
              lpjirasync lpjirasync (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: