Uploaded image for project: 'Dev - Nexus Repo'
  1. Dev - Nexus Repo
  2. NEXUS-14034

NuGet "filter=(tolower(Id))" queries don't use a database index in Nexus 2.x, causing severe performance issues in large instances

    XMLWordPrintable

    Details

      Description

      Nexus 2.14.4 has experienced some severe performance problems with certain NuGet builds. Queries issued sporadically slow down, and they frequently get complete failures due to the h2 connection pool being exhausted.

      They have builds that are making large numbers of queries like this:

      [10/Aug/2017:20:18:02 +0100] "GET /nexus/service/local/nuget/nuget-repo-read/Packages?$filter=(tolower(Id)%20eq%20'akka.remote')%20and%20(Version%20eq%20'1.1.3') HTTP/1.1" 200 5425 12242

      Investigation has shown the cause was queries with a e.g. "((LOWER(ID) = 'nunit')" in them. It turns out these will not use the index, and will result in a full table scan being done.

       Acceptance

      • Queries with a "LOWER" will use the index

        Attachments

          Activity

            People

            Assignee:
            jtom Joe Tom
            Reporter:
            rseddon Rich Seddon
            Last Updated By:
            Peter Lynch
            Team:
            Nexus - Formats
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:
              Date of First Response:

                tigCommentSecurity.panel-title