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|