Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-22544

Inconsistent and Incorrect rw-lock stats

    XMLWordPrintable

    Details

      Description

      • Inconsistent and Incorrect rw-lock stats
      • There are multiple inconsistency and incorrect way in which rw-lock
        stats are calculated.
      • shared rw-lock stats:
      • "rounds" counter is incremented only once for N rounds done in spin-cycle.
      • all rw-lock stats:
      • if the spin-cycle is short-circuited then attempts are re-counted.
        [if spin-cycle is interrupted, before it completes srv_n_spin_wait_rounds
        (default 30) rounds, spin_count (renamed to spin_round_count for better
        clarity) is incremented to consider this.
        if thread resumes spin-cycle (due to unavailability of the locks)
        and is again interrupted or completed spin_count (spin_round_count) is
        again incremented with the total count, failing to adjust the previous
        attempt increment].
      • s/x rw-lock stats:
      • spin_loop counter is not incremented at-all instead it is projected
        as 0 (in show engine output) and division to calculate spin-round per
        spin-loop is adjusted.
      • as per the original semantics spin_loop counter should be incremented
        once per spin_loop execution.
      • sx rw-lock stats:
      • sx locks increment spin_loop counter but instead of incrementing it once
        for spin_loop invocation it does it multiple times based on how many
        time spin_loop flow is repeated for same instance post os-wait.

        Attachments

          Activity

            People

            Assignee:
            marko Marko Mäkelä
            Reporter:
            krunalbauskar Krunal Bauskar
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: