Details

    Description

      Ticket for https://github.com/MariaDB/server/pull/3529 : while MariaDB is written in C+, it rarely uses C+'s advanced features for increased safety. The most important one is RAII, i.e. a single-purpose object manages acquiring and releasing a resource in its constructor/destructor. The destructor is guaranteed to be called, which means the compiler guarantees that the resource gets released when the scope is left, even when an exception is thrown (anywhere, even deeper down the stack). At runtime, this adds no overhead because the RAII object is optimized away.
      To get started, I suggest using such a RAII class for the `dict_sys` locks. Part of that was implemented by https://github.com/MariaDB/server/pull/3529

      Attachments

        Issue Links

          Activity

            I think that we can revisit this after fixing some more performance problems around dict_sys.latch.

            marko Marko Mäkelä added a comment - I think that we can revisit this after fixing some more performance problems around dict_sys.latch .

            I think that this needs to be revisited after the blocking tickets have been closed, that is, once we no longer hold dict_sys.latch when accessing the InnoDB buffer pool.

            marko Marko Mäkelä added a comment - I think that this needs to be revisited after the blocking tickets have been closed, that is, once we no longer hold dict_sys.latch when accessing the InnoDB buffer pool.

            Reset contribution label as there is no active pull request.

            svoj Sergey Vojtovich added a comment - Reset contribution label as there is no active pull request.

            People

              marko Marko Mäkelä
              maxk Max Kellermann
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

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