Uploaded image for project: 'SonarQube'
  1. SonarQube
  2. SONAR-13093

Optimize cache of issues in Compute Engine

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 8.3
    • Component/s: Compute Engine
    • Labels:
    • Edition:
      Community
    • Production Notes:
      None

      Description

      Writing and reading issues to the cache in disk is slow, making up a significant portion of the total time required to process an analysis in the Compute Engine.

      All issues are stored using Java's native serialization. There are two improvements to do here: 1. only store issues that will be persisted in DB (new, changed and copied issues)

      2. use a faster serialization library. These libraries should be more efficient in both serialization speed and encoding (less space used, so less I/o required).

       

      For 2., two libraries were considered: protobuf and fast-serialization. Turns out that fast-serialization doesn't seem to be maintained anymore and it there were problems serialization some of the data types used in issues. Protobuf already has many uses in SonarQube, is well known by its developers and is well maintained and supported by a community so it's the better choice.

       

      Execution time in ms of CE tasks, analyzing Moodle with Posgresql 9.3.

      Postgresql / moodle 1st analysis master 2nd analysis master 1st analysis w/ ticket 2nd analysis w/ ticket
      persist issues 53708 38155 6202 17
      visitors 32506 25449 23119 19814

       

       

       

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              duarte.meneses Duarte Meneses
              Reporter:
              duarte.meneses Duarte Meneses
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Due:
                Created:
                Updated:
                Resolved: