[wp-trac] [WordPress Trac] #17210: Massive duplication of oEmbed postmeta
WordPress Trac
noreply at wordpress.org
Thu Jul 3 16:44:16 UTC 2014
#17210: Massive duplication of oEmbed postmeta
--------------------------+---------------------------
Reporter: archon810 | Owner: Viper007Bond
Type: defect (bug) | Status: reopened
Priority: normal | Milestone: 4.0
Component: Embeds | Version: 3.1
Severity: normal | Resolution:
Keywords: needs-patch | Focuses:
--------------------------+---------------------------
Comment (by helen):
In [changeset:"28972"]:
{{{
#!CommitTicketReference repository="" revision="28972"
Improve oEmbed caching. Introduces the concept of a TTL for oEmbed caches
and a filter for `oembed_ttl`.
We will no longer replace previously valid oEmbed responses with an
`{{unknown}}` cache value. When this happens due to reaching a rate limit
or a service going down, it is data loss, and is not acceptable. This
means that oEmbed caches for a post are no longer deleted indiscriminately
every time that post is saved.
oEmbed continues to be cached in post meta, with the addition of a
separate meta key containing the timestamp of the last retrieval, which is
used to avoid re-requesting a recently cached oEmbed response. By default,
we consider a valued cached in the past day to be fresh. This can greatly
reduce the number of outbound requests, especially in cases where a post
containing multiple embeds is saved frequently.
The TTL used to determine whether or not to request a response can be
filtered using `oembed_ttl`, thus allowing for the possibility of
respecting the optional oEmbed response parameter `cache_age` or altering
the period of time a cached value is considered to be fresh.
Now that oEmbeds are previewed in the visual editor as well as the media
modal, oEmbed caches are often populated before a post is saved or
published. By pre-populating and avoiding having to re-request that
response, we also greatly reduce the chances of a stampede happening when
a published post is visible before oEmbed caching is complete.
As it previously stood, a stampede was extremely likely to happen, as the
AJAX caching was only triggered when `$_GET['message']` was 1. The
published message is 6. We now trigger the caching every time
`$_GET['message']` is present on the edit screen, as we are able to avoid
triggering so many HTTP requests overall.
props markjaquith. fixes #14759. see #17210.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/17210#comment:34>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list