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

Optimize is_file_on_ssd() to speedup opening tablespaces on Windows

Details

    Description

      is_file_on_ssd() on Windows uses a cache to avoid repeated checks whether a given volume is on SSD.

      However, it still uses GetVolumePathName() to retrieve volume for any given file.
      GetVolumePathName() appears to be expensive, procmon shows that internally it opens every directory in the hierarchy, probably to check whether directory is a symlink.

      This can be improved by using volume serial ID as cache key instead, it is cheap to retrieve it for an open file.

      Attachments

        Issue Links

          Activity

            wlad Vladislav Vaintroub created issue -
            wlad Vladislav Vaintroub made changes -
            Field Original Value New Value
            wlad Vladislav Vaintroub made changes -
            Fix Version/s 10.4 [ 22408 ]
            wlad Vladislav Vaintroub made changes -
            issue.field.resolutiondate 2023-09-22 19:54:35.0 2023-09-22 19:54:35.288
            wlad Vladislav Vaintroub made changes -
            Fix Version/s 10.4.32 [ 29300 ]
            Fix Version/s 10.5.23 [ 29012 ]
            Fix Version/s 10.6.16 [ 29014 ]
            Fix Version/s 10.4 [ 22408 ]
            Resolution Fixed [ 1 ]
            Status Open [ 1 ] Closed [ 6 ]
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 10.10.7 [ 29018 ]
            Fix Version/s 10.11.6 [ 29020 ]
            Fix Version/s 11.0.4 [ 29021 ]
            Fix Version/s 11.1.3 [ 29023 ]

            People

              wlad Vladislav Vaintroub
              wlad Vladislav Vaintroub
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.