Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-53503

"Move page" is 85% slower in Confluence 5.10+ than in 5.8.18, making moving large number of pages very inefficient


    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Low Low
    • None
    • 5.10.0
    • Server - Performance
    • None

      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.)

      *Update 02/06/2017*

      Joint investigation by aron.gombas and psemeniuk (see comment thread below) showed that regression happened somewhere between 5.8.18 and 6.0.1:

        5.8.0 5.8.18 6.0.1
      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.

            Unassigned Unassigned
            9d51fe2ef7c7 Aron Gombas [Midori]
            14 Vote for this issue
            17 Start watching this issue