Versions Compared

Key

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


Note

Jira Server only

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:

...

  1. Limiting the overall time to fetch all the data. By default, Links Hierarchy supports a 10.000 milliseconds timeout. When the timeout is achieved, the process fetching data is aborted and the thread released.
  2. Sharing the thread with others. Links Hierarchy forces the thread to sleep for some time (100 milliseconds) every interval (250 milliseconds). When a thread is sleeping, other process in the JVM (Jira) can reuse it. In other words, threads are used in a collaborative way. This has really great advantages. However, the other process re-using the thread, should do it during a short interval of time, otherwise Links hierarchy could not continue to fetching data from JIra to build the hierarchies. If the shared thread is locked by other process for a long time, this might cause issues like some speed down while viewing hierarchies or even time outs. This might confuse some users thinking that the plugin is slow or even does not work properly and it is unable to load all the the expected data. The problem, might be caused for other process (plugin X) consuming excessive time in a egoistic way)


All those parameters above can be configured by the JIra administrators. Click on the Troubleshooting link at the bottom of the Links Hierarchy configuration page:



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:

Image Modified


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:

Image Added


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.