Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-22607

LogRotator inefficient when number of builds to kept is very large


      If you have configured LogRotator to delete all builds older than 30 days, yet you do around 1000 builds a day, then at the end of each build LogRotator.perform will scan backwards from the previous build all the way to the first build (or nearby), loading each build along the way, just to find the (on average) one build which is now older than 30 days so it can be deleted. This forces thousands of builds to be kept in memory, or if they cannot all be held in memory, forces each build to reload thousands of older build records that it does not really need.

      Would be better to do a binary search through the build history to find the newest build which is suitable for deletion.

            jglick Jesse Glick
            jglick Jesse Glick
            0 Vote for this issue
            5 Start watching this issue