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

Rebuilding dependency graph slow on large numbers of Ivy Projects

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Component/s: ivy-plugin
    • Labels:
      None
    • Similar Issues:

      Description

      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.

        Attachments

          Activity

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

          Show
          tbingaman 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) .
          Hide
          scm_issue_link 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.

          Show
          scm_issue_link 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.
          Hide
          dogfood 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
          Show
          dogfood 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

            People

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

              Dates

              • Created:
                Updated:
                Resolved: