Performance optimization

Owner: Rebecka Hall

What business value does this roadmap item create? / Which problem is this roadmap item trying to solve?

The upcoming changes where all INT and FLEX reviews will be synchronized is likely to impact the performance of our system set-up. We have recently had 2 incidents on the live environment where ReviewDB was impacted. 

The load on the ReviewDB server is potentially changed due to:

  • ReviewDB is responsible for check in/check out to RevMan 5
  • Loading the History is fetching versions from S3 instead of from Archie
  • Loading My reviews view in both RevMan Web and RevMan 5
  • Revert calls ReviewDB instead of Archie
  • Submit includes more steps (CRS update, Remove tracked changes, invalid characters and yellow markings)
  • Viewing versions 

We need to make sure that the systems are set up and can easily adapt to increased load. 

In previous feedback forms we have received feedback on the performance but this could relate to a number of factors such as their internet connection and their computer setup:

"- it would be great that the web version works faster, immediate response after clicking, it takes at the moment just too long (independent of browser and connection)"

"Sometimes, it takes time and shows unknown error repeatedly."

"The forest plots sometimes are a bit 'glitchy' in terms of when they load up on the screen. I only just worked out that if I hit the 'graph' button twice that they load up instantly."

The validation report (now improved with caching), the full-text view and import of reviews to reviewDB take substanial time for large reviews. 

How can the value delivered be measured?

Need to be agreed.

Which assumptions are made in relation to the value?

Performance is a key factor in assessing the usefulness of the application when starting to use it. 

What are the dependencies for fulfilling the business value?

Starting to monitor and evaluate performance systematically. 

What are the risks related to this roadmap item?

There is a risk in NOT monitoring and improving performance. 

What is included in the scope of this solution?

Introduce caching in more places: 

RMW-963 - Getting issue details... STATUS

RMW-1134 - Getting issue details... STATUS
Ensure appropriate indexes in place in the database:  RMW-1216 - Getting issue details... STATUS

Implement lazy loading more generally  RMW-1279 - Getting issue details... STATUS

Agree on and implement a way to measure performance:  RMW-1367 - Getting issue details... STATUS  

How much time do we estimate to implement this roadmap item?

This is a guesstimate made by the Review Production Team based on known information about the roadmap item and the capacity of the team at the time of estimation (June 2020).

Medium = 1-2 sprints = 2-4 weeks. Scope is unclear until we know how to measure performance. We do already have specific suggestions for improvement.