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

Major Optimization: Create and Use FlowNode.getAction w/o TransientActionFactories

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      In most cases we only care about the directly attached actions on flownodes. FlowNode.getAction has been identified as ~25% of runtime for pipeline flow analysis, and it is likely b/c this queries all TransientActionFactories for actions.

      We should:

      1. Add a FlowNode.getAction API version (name TBD) that only iterates through the directly added actions (already cached in-object)
      2. Switch the pipeline-graph-analysis plugin and stage view's REST API to use this exclusively
      3. Benchmark to see what the performance difference is

      UPDATE: Doubles stage view performance, which should carry through to a large extent anywhere we use flow analysis.

        Attachments

          Issue Links

            Activity

            svanoort Sam Van Oort created issue -
            svanoort Sam Van Oort made changes -
            Field Original Value New Value
            Status Open [ 1 ] In Progress [ 3 ]
            svanoort Sam Van Oort made changes -
            Status In Progress [ 3 ] In Review [ 10005 ]
            svanoort Sam Van Oort made changes -
            Description In most cases we only care about the directly attached actions on flownodes. FlowNode.getAction has been identified as ~25% of runtime for pipeline flow analysis, and it is likely b/c this queries all TransientActionFactories for actions.

            We should:

            1. Add a FlowNode.getAction API version (name TBD) that only iterates through the directly added actions (already cached in-object)
            2. Switch the pipeline-graph-analysis plugin and stage view's REST API to use this exclusively
            3. Benchmark to see what the performance difference is
            In most cases we only care about the directly attached actions on flownodes. FlowNode.getAction has been identified as ~25% of runtime for pipeline flow analysis, and it is likely b/c this queries all TransientActionFactories for actions.

            We should:

            1. Add a FlowNode.getAction API version (name TBD) that only iterates through the directly added actions (already cached in-object)
            2. Switch the pipeline-graph-analysis plugin and stage view's REST API to use this exclusively
            3. Benchmark to see what the performance difference is

            UPDATE: *50% improvement in stage view performance, which should carry through to a large extent anywhere we use flow analysis.*
            svanoort Sam Van Oort made changes -
            Component/s pipeline-graph-analysis-plugin [ 21693 ]
            Component/s pipeline-stage-view-plugin [ 21139 ]
            svanoort Sam Van Oort made changes -
            Description In most cases we only care about the directly attached actions on flownodes. FlowNode.getAction has been identified as ~25% of runtime for pipeline flow analysis, and it is likely b/c this queries all TransientActionFactories for actions.

            We should:

            1. Add a FlowNode.getAction API version (name TBD) that only iterates through the directly added actions (already cached in-object)
            2. Switch the pipeline-graph-analysis plugin and stage view's REST API to use this exclusively
            3. Benchmark to see what the performance difference is

            UPDATE: *50% improvement in stage view performance, which should carry through to a large extent anywhere we use flow analysis.*
            In most cases we only care about the directly attached actions on flownodes. FlowNode.getAction has been identified as ~25% of runtime for pipeline flow analysis, and it is likely b/c this queries all TransientActionFactories for actions.

            We should:

            1. Add a FlowNode.getAction API version (name TBD) that only iterates through the directly added actions (already cached in-object)
            2. Switch the pipeline-graph-analysis plugin and stage view's REST API to use this exclusively
            3. Benchmark to see what the performance difference is

            UPDATE: *Doubles stage view performance, which should carry through to a large extent anywhere we use flow analysis.*
            svanoort Sam Van Oort made changes -
            Resolution Done [ 10000 ]
            Status In Review [ 10005 ] Closed [ 6 ]
            oleg_nenashev Oleg Nenashev made changes -
            Component/s core [ 15593 ]
            jglick Jesse Glick made changes -
            Link This issue is blocked by JENKINS-40281 [ JENKINS-40281 ]

              People

              Assignee:
              svanoort Sam Van Oort
              Reporter:
              svanoort Sam Van Oort
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: