Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-23480

Improve PipelineRun list view performance

XMLWordPrintable

    • No
    • ODC Sprint 3248, ODC Sprint 3254
    • 2
    • Rejected
    • False
    • Hide

      None

      Show
      None
    • Hide
      * Previously, on the *PipelineRun list* page, all TaskRuns were fetched and separated based on `pipelineRun` name. With this update, TaskRuns are fetched only for `Failed` and `Cancelled` PipelineRun. A caching mechanism was also added to fetch PipelineRuns and TaskRuns associated to the `Failed` and `Cancelled` PipelineRuns. (link:https://issues.redhat.com/browse/OCPBUGS-23480[*OCPBUGS-23480*])
      Show
      * Previously, on the *PipelineRun list* page, all TaskRuns were fetched and separated based on `pipelineRun` name. With this update, TaskRuns are fetched only for `Failed` and `Cancelled` PipelineRun. A caching mechanism was also added to fetch PipelineRuns and TaskRuns associated to the `Failed` and `Cancelled` PipelineRuns. (link: https://issues.redhat.com/browse/OCPBUGS-23480 [* OCPBUGS-23480 *])
    • Done

      Description of problem:

      PipelineRun list view contains Task status column, which shows the overall task status of the pipelinerurn. Inorder to render this column we fetch all the tasksruns of that pipelinerun.  Every pipelinerun row will have to have all the related TaskRuns information, which is causing performance issue in the pipelinerun list view.

      Customer is facing issue of UI slowness and rendering problem for large number of pipelineruns with and without results enabled. In both cases, there is significant slowness being observed which is hampering their daily operations.

      How reproducible:

      Always

      Steps to Reproduce:

      1. Create few pipelineruns
      2. Navigate to pipelineruns list view
      

      Actual results:

      All the Taskruns are being fetched and the pipelinerun list view renders this column  asynchronously with loading indicator.

       

      Expected results:

      Taskruns should not be fetched at all, rather UI need to parse the `` string to render this column.

      Additional info:

      Pipelinerun status message gets updated on every task completion.

      pipelinerun.status.conditions:

      • lastTransitionTime: '2023-11-15T07:51:42Z'
        message: 'Tasks Completed: 3 (Failed: 0, Cancelled 0), Skipped: 0'
        reason: Succeeded
        status: 'True'
        type: Succeeded

      we can parse the above information to derive the following object and use this for rendering the column,  this will increase the performance of this page hugely. 

      {
       completed: 3, // 3 (total count) - 0 (failed count) - 0 (cancelled count),
       failed: 0,
       cancelled: 0,
       skipped: 0,
       pending: 0 
      }

       

       

      Slack thread for more details - thread

            rh-ee-lprabhu Lokananda Prabhu
            karthik.jk Karthik Jeeyar
            Sanket Pathak Sanket Pathak
            Votes:
            1 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: