Status: Gathering Impact
Affects Version/s: 5.10.0
Fix Version/s: None
Component/s: Server - Performance
Symptom Severity:Severity 2 - Major
Support reference count:2
QA Demo Status:Not Done
QA Kickoff Status:Not Done
Bug Fix Policy:
We are developers of the Archiving Plugin for Confluence.
Our add-on batch-archives pages by moving them between spaces. Our customers frequently archive tens of thousands of pages in one go, sometimes even more. "Page move" does not need to be hyper-fast, but is expected to be complete in tens of minutes or in some hours most (overnight) even for this scale of data.
"Page move" has been a fairly fast operation in Confluence 5.7, and it became significantly slower some time between 5.7 and 5.10. (As far as I know the "Move page" feature has been rewritten in some Confluence version released around that time.)
Our profiling results:
|Operation||1.014M pages in Confluence 5.7.6||5.8.18 metric||380K pages in Confluence 5.10.1|
|Page archiving with MOVE||40 minutes (for 1555 pages)||N/A||1.1 hours (for 400 pages - stable, but slower!)|
1555/40 = 39 page moved per minute in Confluence 5.7
400/66 = 6 page moved per minute in Confluence 5.10
6/39 means it is 85% slower than it used to be!
Is there any chance to accelerate page moves in Confluence core?
Or offer an API to batch-move multiple pages? (Currently, the API limits us to move one page at a time.)
|Execution time||23 m 10 s||12 m 36 s||23 m 53 s|
Regression is present both in memory consumption and cpu usage. As Aron proved increasing memory brings page move time by 30% but it still not up to par with what it was.
Possible area is either `DefaultRelatedContentRefactorer` class or it's clients.