[wp-trac] [WordPress Trac] #23330: Allow autoloading all options, not just autoload = yes options

WordPress Trac noreply at wordpress.org
Wed Jan 30 21:16:17 UTC 2013


#23330: Allow autoloading all options, not just autoload = yes options
--------------------------+-----------------------------
 Reporter:  ryan          |       Owner:
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  Future Release
Component:  Cache         |     Version:  3.5.1
 Severity:  normal        |  Resolution:
 Keywords:                |
--------------------------+-----------------------------
Description changed by ryan:

Old description:

> For 5 years on wordpress.com we have ignore the autoload field for
> options. In wp_load_alloptions(), autoload = yes is not part of the
> query. Why? Because wordpress.com has a persistent cache. Thus, the
> transients that constitute the bulk of autoload = no options are stored
> in cache, never in the options table. Querying autoload=yes makes the
> query slower for no reason.
>
> Having autoload = no options also complicates notoptions caching. Core
> has a notoptions cache that would be unnecessary if you can assume that
> wp_load_alloptions() loads every option. If an option is not in
> alloptions, then it does not exist.
>
> Other large sites that use a persistent cache might also like to ignore
> the autoload flag. Core could automatically switch to ignoring autoload
> when an external object cache is being used, but administrators might
> want to control this so they can clean out old transients from options
> tables and do whatever other housekeeping is desired. So, let's add a
> filter that allows toggling this. When autoload is being ignored the
> wp_load_alloptions() query does not include autoload=yes and notoptions
> is not used.

New description:

 For 5 years on wordpress.com we have ignored the autoload field for
 options. In wp_load_alloptions(), autoload = yes is not part of the query.
 Why? Because wordpress.com has a persistent cache. Thus, the transients
 that constitute the bulk of autoload = no options are stored in cache,
 never in the options table. Querying autoload=yes makes the query slower
 for no reason.

 Having autoload = no options also complicates notoptions caching. Core has
 a notoptions cache that would be unnecessary if you can assume that
 wp_load_alloptions() loads every option. If an option is not in
 alloptions, then it does not exist.

 Other large sites that use a persistent cache might also like to ignore
 the autoload flag. Core could automatically switch to ignoring autoload
 when an external object cache is being used, but administrators might want
 to control this so they can clean out old transients from options tables
 and do whatever other housekeeping is desired. So, let's add a filter that
 allows toggling this. When autoload is being ignored the
 wp_load_alloptions() query does not include autoload=yes and notoptions is
 not used.

--

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/23330#comment:1>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list