MediaWiki Engineering/Performance Review

From Wikitech

The Performance Review process is a critical service provided by MediaWiki Engineering to help uphold the integrity of production software and infrastructure at Wikimedia Foundation.

The goal of these reviews is to reduce risk of a major change or new feature causing performance regressions detrimental to the user experience, or significant load or availability risk to Foundation infrastructure.

Regressions in perceived performance can lead to user frustration and search engine ranking degradation, both likely to result in audience and traffic attrition. Performance reviews are a necessary step for all major changes deployed to Wikimedia production.

Timeline

Performance reviews for a given quarter must be requested at least 21 calendar days prior to the beginning of the quarter.

As performance reviews can be time-consuming, these are usually considered quarterly goals for us.

Once the quarter has started and the preparation steps have been performed by the requester (see below), we commit to completing the performance review within 30 calendar days.

Required preparation

Familiarise yourself with:

Beyond setup, it's also necessary for the requesting team to do your own performance assessment first. Outline potential performance bottlenecks, potential optimisations and including performance measurements. Web performance should be a responsibility and concern owned and monitored by the individual engineering team (not offloaded to MediaWiki Engineering). New features and major changes should already have had their performance optimised to the best of the authors' abilities prior to being submitted to performance review.

The main prerequisite before our performance review can start is for the changes or features to be deployed to a Beta Cluster wiki.

If that isn't possible, the exception must be justified and the changes/feature will still have to be hosted on a wiki so that we can SSH into (for example, in Wikimedia Cloud VPS). It's insufficient to merely point us to the code. Reviewing must involve zero setup for us. This differs from code review where pushing the code to Gerrit is enough preparation for the reviewer.

Our performance review starts after changes or features are deployed to the Beta Cluster.

How to request a performance review

Use the "Request Performance Review" form on Phabricator and enter the required information. Thank you!

See also