Page MenuHomePhabricator

Request Performance review for CommunityConfiguration
Closed, ResolvedPublic

Description

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).

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Putting to Needed before pilot release, as requesting the review is something we should do pre-release, but finishing the process can happen after release (but still when we're CC focused).

Triaging this as High, as the guidance linked in the description recommends to request 21 days prior to the start of a quarter (which is a deadline I was unaware of, and it unfortunately already passed).

Urbanecm_WMF added subscribers: KStoller-WMF, Sgs.

I went ahead and submitted the review as T361070: Performance review of CommunityConfiguration (using the official form provided in the guidance).

@Sgs Please feel free to review the review request, and make or suggest any improvements.

@KStoller-WMF If there is anything else that needs to be added to the request before a timeline can be agreed on with MediaWiki Engineering, please let me know.