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

Misc small InnoDB scalability fixes




      These fixes mostly about re-arrangined code, like moving things out of mutex. No functional changes, no big patches.

      commit 8389b45b7fa1a2ddab64050b0be3cdb3e1a937c1
      Author: Sergey Vojtovich <svoj@mariadb.org>
      Date:   Mon Jan 22 23:58:52 2018 +0400
          MDEV-15059 - Misc small InnoDB scalability fixes
          Moved mutex locking inside lock_rec_lock().
          Moved monitor increment out of mutex.
          Moved assertions that don't require protection out of mutex.
          Removed duplicate assertions.
          Moved duplicate debug injections into lock_rec_lock().
          Let monitor updates use relaxed memory order.
          Return directly without maintaining variables in lock_rec_lock_slow().
          Moved lock_rec_lock_fast() body into lock_rec_lock(): saves at least one
          trx_mutex_enter(), one switch() plus some code was moved out of mutex.
      commit 04996939106bd35a2e8737de35a912ccc6b53ba4
      Author: Sergey Vojtovich <svoj@mariadb.org>
      Date:   Tue Jan 23 13:23:35 2018 +0400
          MDEV-15059 - Misc small InnoDB scalability fixes
          Moved lock_rec_lock_slow() inside lock_rec_lock().
      commit 064bd78038ca8d76ca1612d849ccdcbbe4324110
      Author: Sergey Vojtovich <svoj@mariadb.org>
      Date:   Wed Jan 24 22:10:16 2018 +0400
          MDEV-15059 - Misc small InnoDB scalability fixes
          When cloning oldest view, don't copy ReadView::m_creator_trx_id.
          It means that the owner thread is now allowed to access this member
          without trx_sys.mutex protection.
          To achieve this we have to keep ReadView::m_creator_trx_id in
          ReadView::m_ids. This is required to not let purge thread process
          records owned by transaction associated with oldest view.
          It is only required if trsanction entered read-write mode before it's
          view was created.
          If transaction entered read-write mode after it's view was created
          (trx_set_rw_mode()), purge thread won't be allowed to touch it because
          m_low_limit_id >= m_creator_trx_id holds. Thus we don't have to add
          this transaction id to ReadView::m_ids.
          ReadView::ids_t: don't seem to make any sense, just complicate matters.
          ReadView::copy_trx_ids(): doesn't make sense anymore, integrated into
          ReadView::copy_complete(): not needed anymore.
          ReadView copy constructores: don't seem to make any sense.
          trx_purge_truncate_history(): removed view argument, access
          purge_sys->view directly instead.
      commit 55277e8840f359ed36a99359a7e21f03af72a78a
      Author: Sergey Vojtovich <svoj@mariadb.org>
      Date:   Thu Jan 25 18:29:59 2018 +0400
          MDEV-15059 - Misc small InnoDB scalability fixes
          Form better trx_sys API.


        Issue Links



              svoj Sergey Vojtovich
              svoj Sergey Vojtovich
              0 Vote for this issue
              1 Start watching this issue



                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.