Problem/Motivation
Depends on #3259709: Create the database driver for MySQLi and soft-depends on #3377570: Add PHP Fibers support to BigPipe
Steps to reproduce
Proposed resolution
Once we have a mysqli driver, we'll have the ability to execute asynchronous MySQL queries.
When combined with #3377570: Add PHP Fibers support to BigPipe this will allow us to make an async query, suspend a fiber, then continue once the query comes back.
We will need to both detect when the database driver supports async queries, and also that we're inside a fiber, so it's a couple of extra code paths.
Comments
Comment #2
catchComment #3
catchComment #4
wim leersWhy does this soft-depend on #3377570: Add PHP Fibers support to BigPipe? Because without it, there's no place that the effect would be visible? 🤔
Comment #5
catchYeah exactly. If we add support here, and BigPipe has Fibers support, then we should be able to see real life performance improvements.
#3257725: Add a cache prewarm API could make use of this too, and once we have async queries in core, it'll potentially work in the single request cold cache case, but that's a bit further from being ready still.
Comment #6
catchComment #7
catchAlso postponed on #3384763: Async database query + fiber support
Comment #8
catch