[wp-trac] [WordPress Trac] #62692: Performance regression for get_option in 6.4
WordPress Trac
noreply at wordpress.org
Wed Dec 18 17:00:12 UTC 2024
#62692: Performance regression for get_option in 6.4
--------------------------------------+------------------------------
Reporter: rmccue | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Cache API | Version: 6.4
Severity: major | Resolution:
Keywords: has-patch has-unit-tests | Focuses: performance
--------------------------------------+------------------------------
Comment (by rmccue):
Replying to [comment:13 siliconforks]:
> It seems like what you really want is this:
>
> 1. Check `alloptions`
> 2. Check `notoptions`
> 3. Check the cache for the specific option
> 4. Check the database for the specific option
>
> Does that make sense?
If we can, I can see that making sense; seems a good split between the
original intention (lowering calls for the common path) and improving the
worst-case scenario. There's a slight possibility of cache confusion if a
value is set but isn't deleted from `notoptions` due to a race condition
or similar - I think the likelihood of that is low (not zero; see #31245
for prior alloptions bugs along those lines), and no worse than before
from what I can see.
Replying to [comment:12 spacedmonkey]:
> Sites with cache missing and none object cache site has notable
benefits. Revert this was effect those users to super serve a number of
users using redis implementations.
I understand this perspective, but I'm also comparing a slight performance
decrease for many users against a ''catastrophic'' hit to performance at
scale which caused a multiple day intermittent outage and massively
increased cache server traffic. We can ignore the singular incident if
you'd like for this conversation, but even just from a purely theoretical
standpoint the original patch was problematic in causing excess reads.
Also from the original ticket, I don't see that there were ''notable''
benefits, but maybe I'm misreading those results.
I take your point on the delay in feedback - we didn't notice for other
customers as our systems automatically scaled up for the additional load,
and we're using alternative object caches which don't have this problem.
> I guess I don't understand why the mountain is moving here, when this is
for the object cache plugin maintainer to pick to fix this.
I think we should likely do some advocacy to have these caches act
consistently, but as noted in my investigation above, it's inconsistent at
best; it affects most implementations that I checked.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/62692#comment:14>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list