Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-7354

Add an option to disable camel-case search for file paths

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Unresolved
    • None
    • Search
    • None
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

    Description

      Problem

      In some circumstances it may happen that a search for file paths (e.g. when user uses a quick search box) is very resource intensive in Fisheye. This can result in CPU saturation, high heap memory consumption or even OOME error leading to application crash.

      This is caused by a fact that file paths are being searched for both the exact string entered by a user as well as for a camel-case pattern. For example, entering a text "ABCc" Fisheye can find files like "ABCc.java" as well as "AaaaBbbbCccc.java". In order to find camel-case matches, Fisheye extracts all terms matching given prefixes. This might result in a very complex Lucene query constructed when there are many matches (tens of thousands).

      Note: a search is performed in a cross-repository Lucene index (globalfe/idx0).

      Symptoms

      1. Search for file paths takes seconds or minutes instead of miliseconds, see the TTFB on the network activity in a browser. Example:

      2. High heap consumption. Heap dumps shows large amounts of data allocated in qtp-* threads and occupied by Lucene classes. Example:

      3. High CPU activity.

      Suggested solution

      Add a JVM fisheye property which will allow to disable camel-case search for file paths.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mparfianowicz Marek Parfianowicz
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: