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

Rebuilding dependency graph slow on large numbers of Ivy Projects

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • ivy-plugin
    • None

      Similar issue to JENKINS-7535, but in the Ivy Plugin instead of the Maven Plugin.

      Every time a project is saved, Jenkins rebuilds the dependency graph.
      For Ivy Projects this includes building up a dependency map of all the Ivy modules in Jenkins and then applying the build triggers based on that information. Currently, this is being done in every single module resulting in an operation which is roughly in the order of O(n^2 + xn) where n is the number of Ivy modules in Jenkins and x is the average number of direct dependencies each module has.

          [JENKINS-12638] Rebuilding dependency graph slow on large numbers of Ivy Projects

          The second part of that (O(xn)) can't be helped, but the first part (O(x^2)) is horribly inefficient.

          Using the solution that was applied to the Maven Plugin for JENKINS-7535 in commit 6a5330fd936fb949da74d738b82dcf5333282b61 this first part can be reduced roughly to an O(n) operation, resulting in a final order of about O(n + xn).

          Timothy Bingaman added a comment - The second part of that ( O(xn) ) can't be helped, but the first part ( O(x^2) ) is horribly inefficient. Using the solution that was applied to the Maven Plugin for JENKINS-7535 in commit 6a5330fd936fb949da74d738b82dcf5333282b61 this first part can be reduced roughly to an O(n) operation, resulting in a final order of about O(n + xn) .

          Code changed in jenkins
          User: tbingaman
          Path:
          src/main/java/hudson/ivy/IvyModule.java
          http://jenkins-ci.org/commit/ivy-plugin/cead62a6ab51f30bb24f9e62dc2febdb70778950
          Log:
          [FIXED JENKINS-12638] Make dependency graph calculation more efficient by storing intermediate computational data with the DependencyGraph.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: tbingaman Path: src/main/java/hudson/ivy/IvyModule.java http://jenkins-ci.org/commit/ivy-plugin/cead62a6ab51f30bb24f9e62dc2febdb70778950 Log: [FIXED JENKINS-12638] Make dependency graph calculation more efficient by storing intermediate computational data with the DependencyGraph.

          dogfood added a comment -

          Integrated in plugins_ivy #61
          [FIXED JENKINS-12638] Make dependency graph calculation more efficient by storing intermediate computational data with the DependencyGraph. (Revision cead62a6ab51f30bb24f9e62dc2febdb70778950)

          Result = SUCCESS
          tbingaman :
          Files :

          • src/main/java/hudson/ivy/IvyModule.java

          dogfood added a comment - Integrated in plugins_ivy #61 [FIXED JENKINS-12638] Make dependency graph calculation more efficient by storing intermediate computational data with the DependencyGraph. (Revision cead62a6ab51f30bb24f9e62dc2febdb70778950) Result = SUCCESS tbingaman : Files : src/main/java/hudson/ivy/IvyModule.java

            tbingaman Timothy Bingaman
            tbingaman Timothy Bingaman
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: