Performance team meeting summary 28 June 2022

Performance team meeting summary 28 June 2022

Meeting agenda here and the full chat log is available beginning here on Slack.

Focus group updates

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Site Health

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or ping in Slack
  • @furi3r: Working on porting Full Page Cache and Persistent Object Cache Health Checks to core in https://github.com/WordPress/performance/issues/391 and drafted proposal post here for review; also pinged the Site Health maintainers to keep them in the loop

Feedback requested

Measurement

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or ping in Slack
  • @flixos90: Working on a blog post for Make about the plugin checker proposal

Feedback requested

JavaScript

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Infrastructure

@flixos90

GitHub project

Feedback requested

New module proposal: Performance-oriented indexing for WordPress database tables

  • @olliejones: Request reviews of the proposal, specifically the Decisions to make section:
    • Unlike other modules, this one needs at least some dashboard user interface, to initiate the reindexing of the tables, and to complain if the tables use legacy storage features (MyISAM, COMPACT row format). Where do we put that user interface panel?
    • Experience shows that the POC plugin’s wp-cli access is necessary on large sites to do the reindexing without timeouts. Should performance lab get wp-cli access? How about using WP_Cron?
    • What should the module do on multisite installations?
  • @olliejones: This is a bit different from the existing plugin modules because it initiates an operation that might run for a long time – several minutes on a big site. WP-CLI has been very useful in proof-of-concept plugin and could use advice on how to proceed. Wonder if this should be run by the hosting community?
  • @spacedmonkey: Worth sharing with the hosting community channel?
  • @flixos90: Adding a UI shouldn’t be a concern for a Performance Lab module; Site Health is almost all UI. Feels like UI would probably be under Tools somewhere. Would it be technically possible to do this spread out through multiple web requests?
  • @spacedmonkey: Might need Site Health warning saying indexes are not in place
  • @olliejones: There’s a single ALTER TABLE SQL statement for each table and we need to add/drop all indexes in a single statement. Slowest/biggest table is usually postmeta.
  • @flixos90: How long would executing this query typically take? If too long, can this SQL statement be sent in a non-blocking way for the PHP process?
    • @olliejones: Overall, a few minutes for a postmeta table with a couple of megarows. PHP’s SQL support doesn’t have any fire-and-forget or threading that I know about.
    • @flixos90: If that’s true, not sure this would be feasible for core given they take so long to execute. My concern would be PHP timeout. If SQL execution takes several minutes, an AJAX request won’t work for most sites.
    • @flixos90: Realistically we wouldn’t be able to send an AJAX request and in that request complete the execution of the SQL statement?
      • @olliejones: AJAX and/or WP Cron might work, but the AJAX request won’t finish until after ALTER TABLE finishes
  • @pbearne: For core these could run only for new sites and be worth it
    • @spacedmonkey: Could adding indexes to new sites be a start?
    • @flixos90: If we can determine support on site creation and do it only for new sites as applicable, could still be beneficial without having those concerns from slow SQL queries
  • @furi3r: How does WooCommerce do it? They run big DB updates on upgrades
    • @olliejones: AFAIK, they’re in batches, but we can’t do that for reindexing
  • @spacedmonkey: See this as two problems: old sites vs. new sites. Changing schema for newly created sites is more simple
    • @olliejones: Agreed, but old sites are the ones that have the huge pain points
  • @olliejones: Plugin already has the WP-CLI stuff, could that be put into a Performance Lab module?
    • @flixos90: Since Performance Lab is for future core features, a WP-CLI command doesn’t qualify. Would potentially be a good contribution for the WP-CLI project, though. If we want to build something into core, it needs to work through what core offers, e.g. UI-triggered, AJAX, Cron, etc.
  • Will pick this back up next week

Help wanted

#core-js, #core-media, #performance, #performance-chat, #summary

#hosting-community, #tide

Leave a Reply

Your email address will not be published. Required fields are marked *