[wp-trac] [WordPress Trac] #64696: Real time collboration effectively disables persistent post caches while anyone edits a post
WordPress Trac
noreply at wordpress.org
Mon Mar 16 11:41:55 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 zieladam):
> Hopefully we can leverage this for Playground sync in the future as
well.
For Playground<->Playground, where we can log every database query,
potentially. For WordPress<->Playground and WordPress<->WordPress we'd
need a dedicated data structure.
For synchronizing the files, we can get away with a simple text-based
index file. The [https://github.com/adamziel/streaming-site-migration site
import tool] I'm building right now can synchronize file deltas based on a
TSV file with this layout: `base64 file path | last modified date | size`.
It doesn't version the database rows, though, It just overwrites the
entire database on every sync.
@dmsnell and I [https://github.com/adamziel/zs-sync/blob/trunk/schemas/
explored synchronizing the databases]. The solution is in knowing when
something in the database changes, e.g. a table is created, a column is
added, these specific rows are updated. In an unconstrained environment,
we could keep track of it with a write-ahead log using a database
extension or a clever set of triggers. When that's not an option, the next
best thing is using WordPress hooks before every SQL query and,
independently, running a slow-paced indexer via wp-cron. That indexer
would need a data backend where the indexed rows can be found with a very
low cost. The best solution we've found for that was using five different
tables, each with a schema resembling `indexed_table_name |
indexed_primary_key | last_modified_date | hash | version_number`.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/64696#comment:65>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list