Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Hierarchies could take a long time in order to be fully built in memory at the server and they can be quite expensive in server resource terms (CPU, memory, threads…).

Therefore some  optimizations are supported by Links Hierarchy in the server to ensure the performance and reliability of Jira while thousand users build and view hierarchies:

There are three configurable parameters to tune links hierarchy in order to adapt it to each customer's environment. :

  • Timeout: (ms) 

  • Sleep interval (ms)

  • Sleep duration (ms)

Despite the default configuration is very conservative, it works well in most of the cases.

...

In Jira, every call to the server from a client it is attended by a thread. Threads are a limited resource in the Operating System and mainly in the Java Virtual Machine (JVM), therefore, it is important do not block threads for a long time to avoid Jira become becomes unresponsive. Every time that a hierarchy ask for data to the server, a thread is consumed form the JVM's threads pool.

...

Step.4 Tune the data reading process section

...

Depending of the available hardware (RAM, CPU), amount of users, peaks of activity and the rest of the environment like the amount of issues and links and other third party plugins installed, etc.The Jira administrators might want to set a more less conservative approach. I.e

  • Timeout: 25.000 ms 

  • Sleep interval: 2000 ms

  • Sleep duration: 50 ms

Those values are read in real-time, so re-enabling the plugin is not required.

Those parameters can also be modified in the Jira database directly:

...

If loading the issue links reaches the timeout, then the issue is painted with a red border and the user can continue loading the links manually by clicking on the expand button:

...

The plugin also supports some improvements at the client side for scaling like caching and queues. I.e: all the calls to Jira are queued in the browser to avoid overload Jira.