Work Tree Report is among the most popular ones for understanding the structure of work and progress accomplished.
The Jira Align team has been improving performance on the Work Tree reports by focusing on the load times for the progress dials on the page. Changes to the dials were released in version 10.116.0.
In addition to the initial performance tests that check initial load times, we also have been performing head-to-head comparisons with old queries being executed sequentially (old SQL stored procs) vs. a new asynchronous approach using APIs. In this article, I’ll describe the test data prep and outcomes of these comparisons.
According to the Work Tree performance analysis in the previous iterations, we decided to redesign the code instead of using updated SQL stored procedures.
We refactored SQL queries and ran new queries asynchronously using API calls.
The list of objects:
1 portfolio
2 solutions
5 programs
10 Agile teams in each program (total: 50)
5 Team members in each team (total: 250)
5 PIs assigned for all programs (4 completed, 1 In progress)
7 sprints for each PI and team (total: 1750)
2 release vehicles for each PI
Snapshot assigned to 5 PIs
1 goal for each program per PI (total: 25)
1 theme for each team per PI (total: 250)
2 epics for each team per PI (total: 500)
4 capabilities for each team per PI (total: 1000)
2 features for each team per sprint (total: 3500)
7 stories for each team per sprint (total: 12250)
15 tasks for each team per sprint (total: 26250)
3 defects for each team per sprint (total: 5250)
1425 objectives:
5 portfolio objectives per PI (total: 25)
10 solution objectives per PI - 6 and 4 for each solution (total: 50)
20 program objectives per PI - 4 for each program (total: 100)
250 team objectives per PI - 5 for each team (total: 1250).
16 risks for each program per PI (total: 400).
1 dependency for each team per PI (total: 250)
For performance measurements, we used the JMeter tool with a Microsoft SQL server connector.
Setup of the system under test:
Intel Core i7-105010U
16GB RAM
SSD 256GB (Micron Technology)
Windows 10 Enterprise
MS SQL Server 2019
Resource utilization
Microsoft Perfmon was used for monitoring the system under test. During the testing process, no increase in CPU/memory/IO consumption was detected.
Simulation description
In the left column of the table below, the existing stored procedures were executed sequentially as it reflects the current execution and processing flow.
In the right column, the new queries were executed in parallel (asynchronously).
Results of performance measurements
Overall, we observed improvements in execution speed from -38% to -92% on the three views that were being worked on, which is a great achievement for the product and for work tree performance in general.
Jira Align constantly tracks the P90 latency for the most often used pages - that’s how we know the experience of the 10% of all calls that sometimes can take longer than expected. Below is the anonymized data for June 2022 on the Work Tree report P90 response time of five big clients:
Notice the spikes that were above our 7-second threshold for the worst 10% of cases. That’s what we aimed to fix with the new approach.
The teams worked on a solution that would enable Work Tree users to get their data faster and allow first interactions much sooner than before. In the graph below you can see the result: in early January 2023, Jira Align released version 10.116.0 where all the changes were applied. This led to a great reduction in outliers and spikes higher than our target values for P90 response time:
The green rectangle shows the time period when Work Tree changes were deployed. Users started observing much faster loading times than before.
We also gathered the response time of P99 (1% of worst cases) on production data. The chart below also shows more stable and predictable loading times starting from January 2023 when the fix was introduced:
The duration of WorkTree Response in ms.
This project was one of many that aim to improve the user experience and speed of the Jira Align application, and we’re happy to provide our community with reliable and performant tools.
Roman Koshovskyi
2 comments