Details

    Description

      This will allow us to reduce critical section protected by trx_sys.mutex:
      1. no need to maintain global m_free list
      2. eliminate if (trx->read_view == NULL) condition

      On x86_64 sizeof(Readview) is 144 mostly due to padding, sizeof(trx_t) with ReadView is 1200.

      Attachments

        Issue Links

          Activity

            svoj Sergey Vojtovich added a comment - marko , please review https://github.com/MariaDB/server/commit/9f72798a8fe27fb06ceeb2f543c186ee8faa987a

            Pushed

            commit 8e1adff95993effaa22129ff34b4570b755434ac
            Author: Sergey Vojtovich <svoj@mariadb.org>
            Date:   Sun Jan 21 14:10:06 2018 +0400
             
                Simplified away ReadView::complete()
             
                It was supposed to be called out of mutex, but nevertheless was called
                under trx_sys.mutex for normal threads adding one extra condtion in
                critical section.
             
            commit 4dc30f3c170b9deab1ff0b472930baba5c65b01c
            Author: Sergey Vojtovich <svoj@mariadb.org>
            Date:   Sat Jan 20 17:45:42 2018 +0400
             
                MDEV-15019 - InnoDB: store ReadView on trx
             
                This will allow us to reduce critical section protected by
                trx_sys.mutex:
                - no need to maintain global m_free list
                - eliminate if (trx->read_view == NULL) condition.
             
                On x86_64 sizeof(Readview) is 144 mostly due to padding, sizeof(trx_t)
                with ReadView is 1200.
             
                Also don't close ReadView for read-write transactions, just mark it
                closed similarly to read-only.
             
                Clean-up: removed n_prepared_recovered_trx and n_prepared_trx, which
                accidentally re-appeared after some rebase.
            

            svoj Sergey Vojtovich added a comment - Pushed commit 8e1adff95993effaa22129ff34b4570b755434ac Author: Sergey Vojtovich <svoj@mariadb.org> Date: Sun Jan 21 14:10:06 2018 +0400   Simplified away ReadView::complete()   It was supposed to be called out of mutex, but nevertheless was called under trx_sys.mutex for normal threads adding one extra condtion in critical section.   commit 4dc30f3c170b9deab1ff0b472930baba5c65b01c Author: Sergey Vojtovich <svoj@mariadb.org> Date: Sat Jan 20 17:45:42 2018 +0400   MDEV-15019 - InnoDB: store ReadView on trx   This will allow us to reduce critical section protected by trx_sys.mutex: - no need to maintain global m_free list - eliminate if (trx->read_view == NULL) condition.   On x86_64 sizeof(Readview) is 144 mostly due to padding, sizeof(trx_t) with ReadView is 1200.   Also don't close ReadView for read-write transactions, just mark it closed similarly to read-only.   Clean-up: removed n_prepared_recovered_trx and n_prepared_trx, which accidentally re-appeared after some rebase.

            People

              svoj Sergey Vojtovich
              svoj Sergey Vojtovich
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

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