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

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

    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 -
            Status In Review [ 10005 ] Closed [ 6 ]
            Resolution Done [ 10000 ]
            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: