[wp-trac] [WordPress Trac] #31245: Replace alloptions with a key cache

WordPress Trac noreply at wordpress.org
Mon Nov 20 16:37:54 UTC 2017


#31245: Replace alloptions with a key cache
-------------------------------------+-----------------------------
 Reporter:  rmccue                   |       Owner:  rmccue
     Type:  enhancement              |      Status:  assigned
 Priority:  normal                   |   Milestone:  Future Release
Component:  Options, Meta APIs       |     Version:
 Severity:  normal                   |  Resolution:
 Keywords:  has-patch needs-testing  |     Focuses:  performance
-------------------------------------+-----------------------------

Comment (by spacedmonkey):

 For the record this is the work around used on WordPress VIP.

 {{{#!php
 /**
  * Fix a race condition in alloptions caching
  *
  * See https://core.trac.wordpress.org/ticket/31245
  */
 function _wpcom_vip_maybe_clear_alloptions_cache( $option ) {
         if ( ! wp_installing() ) {
                 $alloptions = wp_load_alloptions(); //alloptions should be
 cached at this point

                 if ( isset( $alloptions[ $option ] ) ) { //only if option
 is among alloptions
                         wp_cache_delete( 'alloptions', 'options' );
                 }
         }
 }

 add_action( 'added_option',   '_wpcom_vip_maybe_clear_alloptions_cache' );
 add_action( 'updated_option', '_wpcom_vip_maybe_clear_alloptions_cache' );
 add_action( 'deleted_option', '_wpcom_vip_maybe_clear_alloptions_cache' );
 }}}

 This is the same as patch
 [https://core.trac.wordpress.org/attachment/ticket/31245/31245.3.diff
 31245.3.diff]. Which means this patch has been tested as scale...

--
Ticket URL: <https://core.trac.wordpress.org/ticket/31245#comment:57>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list