According to the Writing an extension for deployment docs at MediaWiki.org, Performance Review is one of the new extension reviews that might need to be requested for a new extension. Considering CommunityConfiguration changes how MediaWiki configuration behaves (which is relied on by virtually everything else), its impact on site performance might be non-trivial. As such, we definitely should request Performance Review for MediaWiki-extensions-CommunityConfiguration.
Per the documentation, the Performance Review requires the "Deploy to Beta" milestone to be completed (in other words: the review is blocked by T357766). In addition to that, the Performance Review is typically non-blocking (=production deployment is possible with Performance Review in progress). That said, we should still plan to implement any changes requested during that review.
Guidance: Available at Wikitech as https://wikitech.wikimedia.org/wiki/MediaWiki_Engineering/Performance_Review.
Answers to questions from the review form
Those answers are written assuming T357766 is completed (=CommunityConfiguration is available at eswiki beta).
Preview environment
CommunityConfiguration is enabled at eswiki beta. Administrators can modify the configuration values via https://es.wikipedia.beta.wmflabs.org/wiki/Special:CommunityConfiguration; those values are then used in the following context:
- in page load context (eg. Help panel); this is only used if all three checkboxes under "Newcomer editor features" are checked in Special:Preferences; newly-created accounts are automatically provisioned in this way,
- at Special:Homepage
- at Special:MentorDashboard
- in maintenance jobs (eg extensions/GrowthExperiments/maintenance/refreshPraiseworthyMentees.php)
Which code to review
mediawiki/extensions/CommunityConfiguration in Gerrit
Performance assessment
- What work has been done to ensure the best possible performance of the feature?
We cache the on-wiki JSON pages in Memcached as well as in APCU, lowering the cost-to-load as much as possible.
- What are likely to be the weak areas (e.g. bottlenecks) of the code in terms of performance?
The extension switches the source for certain configuration from PHP globals to on-wiki JSON pages. This can cause the site to generally load more slowly, as on-wiki pages are slower to read. Considering the on-wiki JSON pages storage backend, it can also increase the number of SQL queries performed in a page load context.
- Are there potential optimisations that haven't been performed yet?
No.
- Please list which performance measurements are in place for the feature and/or what you've measured ad-hoc so far. If you are unsure what to measure, ask the MediaWiki Platform Team for advice: mediawiki-platform-team@wikimedia.org.
We measure the speed of pageload of Special:Homepage (the user of the previous version of Community configuration, which was a part of the GrowthExperiments extension). The speed was not negatively affected by the introduction of Community configuration. That said, we do not have dedicated performance measurements in CommunityConfiguration extension itself (it is not super-clear what would we be measuring either).