Problem/Motivation
Everytime the frontpage is changed on our site, a new revision is created. As a "living node" you can imagine that overtime, the revision history for this node is going to get large. Its already at 175 revisions and diff module is currently bloating out page loads by 300+ seconds.
Take a look at this callgraph slice
As DiffEntityComparison::summary
recurses the number of function calls from it goes exponential. The more entity revision diff possibilities it seems creates huge amounts of overhead.
At first glance, it would seem that the Diff module should have some gates or strategies in place to deal with diff summarisation at scale.
Comment | File | Size | Author |
---|---|---|---|
#10 | interdiff-8-10.txt | 2.96 KB | marcoscano |
#10 | 2880936-10.patch | 6.29 KB | marcoscano |
#8 | interdiff-6-8.txt | 609 bytes | marcoscano |
#8 | 2880936-8.patch | 4.67 KB | marcoscano |
#6 | 2880936-6.patch | 4.57 KB | marcoscano |
Comments
Comment #2
Josh Waihi CreditAttribution: Josh Waihi at Acquia commentedComment #3
johnchqueHmm seems like a big problem, can you help us providing some tests? (Bug reports should always be committed with tests) so we can fix it. :)
Bug reports go always against dev.
Comment #4
miro_dietikerSee also the related issue:
So yeah, the first step is really completely remove the autogenerated summary before we can then discuss how a better autogenerated summary should look and generate it for storage on revision save.
Comment #5
miro_dietikerAfter the removal, rest in follow-ups.
Critical because the revision tab gets dysfunctional on some sites.
Comment #6
marcoscanoQuick removal-only patch :)
Didn't run tests locally, let's see what the testbot has to say.
Comment #8
marcoscanoComment #9
Berdirthis looks a bit strange. Maybe we could manually enter revision log messages into those revisions, so they're a bit easier to identify?
wondering what this was testing exactly with the no unique, possibyl that the revision log message is copied or that there is more than one such revision.. could we restore that coverage with a manual revision log message as well?
Comment #10
marcoscanoThanks for reviewing!
Let's see what the testbot says about this.
Comment #11
BerdirYeah, lets do this, and then add something back later that performs better.
Comment #13
miro_dietikerCommitted, with an extra @todo comment.
At least it's fast again and there's room now for a new and better approach.
Created follow-up to readd the summary.
#2972177: generate a diff summary