[wp-trac] [WordPress Trac] #64696: Real time collboration effectively disables persistent post caches while anyone edits a post
WordPress Trac
noreply at wordpress.org
Wed Mar 18 17:41:29 UTC 2026
#64696: Real time collboration effectively disables persistent post caches while
anyone edits a post
--------------------------------------+--------------------------
Reporter: peterwilsoncc | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: 7.0
Component: Posts, Post Types | Version: trunk
Severity: normal | Resolution:
Keywords: has-patch has-unit-tests | Focuses: performance
--------------------------------------+--------------------------
Comment (by JoeFusco):
With the decision to ship RTC as opt-in for RC1
([https://wordpress.slack.com/archives/C07NVJ51X6K/p1773850504196589 Slack
announcement]), I'd like to share some context on the remaining open
question: whether to proceed with the dedicated table.
@ellatrix, thank you for putting together a patch to explore the post meta
direction. Before adding a table, we should be sure post meta can't do the
job. The cache invalidation fix addresses 1 of the 3 known issues that
surfaced during development. The other two sit deeper in how post meta
handles this access pattern: the compaction race condition that @czarate
documented in comment:85 and [https://github.com/WordPress/wordpress-
develop/pull/11067 PR #11067] can silently drop updates when concurrent
writes overlap, and cursor ID collisions can occur when those writes land
within the same millisecond. @peterwilsoncc walked through the scope of
what the Meta API and `WP_Meta_Query` changes would require in comment:86,
each touching shared infrastructure that every plugin in the ecosystem
relies on.
The table resolves all three issues in one place. Append-only writes with
auto-increment IDs eliminate both the compaction race and the collision
window structurally. The blast radius is limited to RTC - nothing else in
core is affected. And the compaction bug that @czarate identified needs to
be fixed regardless of direction. With the table, it already is.
The data stored in this table is entirely ephemeral - session state, not
user content. If the schema needs to evolve in 7.1, we can alter or
rebuild the table without any meaningful data loss.
`wp_is_collaboration_enabled()` requires both the site option and
`db_version >= 61841`, so if the database upgrade hasn't run yet, on
multisite or anywhere else, RTC simply doesn't activate. Sites that don't
opt in never create or query the table.
----
The implementation is tested (unit + E2E), feature-gated, and isolated
from core's shared APIs. Could use feedback on the supporting tests to
ensure we captured all relevant scenarios.
https://github.com/WordPress/wordpress-develop/pull/11256
--
Ticket URL: <https://core.trac.wordpress.org/ticket/64696#comment:95>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list