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

Search API too slow for dashboard

    Details

    • Similar Issues:
    • Epic Link:
    • Sprint:
      pacific, atlantic, 1.0-b05/b-06

      Description

      Search API (page limit 26)

      • Took 7 sec on average (in other cases, 12seconds for 11kb of data - from Ben Walding)
      • To address sorting by name and exclude certain items from flattening all possible items are loaded in memory
        • jenkins.getAllItems()
        • Exclude items that are children of multi-branch and matrix project
        • Don’t see how we can avoid it unless the jobs are stored in some kind of db with indexed column to speed up sorting and only give limited records instead of all
      • new PipelineContainerImpl().getPipelines(items) should be pagination aware
      • At present it creates BluePipeline object for all possible items (ouch!)

      Also: check that runs/activity benefits from same pagination aware optimisation

        Attachments

          Issue Links

            Activity

            michaelneale Michael Neale created issue -
            michaelneale Michael Neale made changes -
            Field Original Value New Value
            Link This issue relates to JENKINS-38087 [ JENKINS-38087 ]
            michaelneale Michael Neale made changes -
            Epic Link JENKINS-35759 [ 171771 ]
            michaelneale Michael Neale made changes -
            Link This issue blocks JENKINS-38079 [ JENKINS-38079 ]
            michaelneale Michael Neale made changes -
            Description *Search API (page limit 26)*
            * Took 7 sec on average
            * To address sorting by name and exclude certain items from flattening all possible items are loaded in memory
            * jenkins.getAllItems()
            * Exclude items that are children of multi-branch and matrix project
            * Don’t see how we can avoid it unless the jobs are stored in some kind of db with indexed column to speed up sorting and only give limited records instead of all
            * new PipelineContainerImpl().getPipelines(items) should be pagination aware
            * At present it creates BluePipeline object for all possible items (ouch!)
            *Search API (page limit 26)*
            * Took 7 sec on average
            * To address sorting by name and exclude certain items from flattening all possible items are loaded in memory
            ** jenkins.getAllItems()
            ** Exclude items that are children of multi-branch and matrix project
            ** Don’t see how we can avoid it unless the jobs are stored in some kind of db with indexed column to speed up sorting and only give limited records instead of all
            * new PipelineContainerImpl().getPipelines(items) should be pagination aware
            * At present it creates BluePipeline object for all possible items (ouch!)
            michaelneale Michael Neale made changes -
            Sprint 1.0-b05/b-06 [ 111 ]
            michaelneale Michael Neale made changes -
            Description *Search API (page limit 26)*
            * Took 7 sec on average
            * To address sorting by name and exclude certain items from flattening all possible items are loaded in memory
            ** jenkins.getAllItems()
            ** Exclude items that are children of multi-branch and matrix project
            ** Don’t see how we can avoid it unless the jobs are stored in some kind of db with indexed column to speed up sorting and only give limited records instead of all
            * new PipelineContainerImpl().getPipelines(items) should be pagination aware
            * At present it creates BluePipeline object for all possible items (ouch!)
            *Search API (page limit 26)*
            * Took 7 sec on average (in other cases, 12seconds for 11kb of data - from [~bwalding])
            * To address sorting by name and exclude certain items from flattening all possible items are loaded in memory
            ** jenkins.getAllItems()
            ** Exclude items that are children of multi-branch and matrix project
            ** Don’t see how we can avoid it unless the jobs are stored in some kind of db with indexed column to speed up sorting and only give limited records instead of all
            * new PipelineContainerImpl().getPipelines(items) should be pagination aware
            * At present it creates BluePipeline object for all possible items (ouch!)
            jamesdumay James Dumay made changes -
            Assignee Vivek Pandey [ vivek ]
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            vivek Vivek Pandey made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            michaelneale Michael Neale made changes -
            Description *Search API (page limit 26)*
            * Took 7 sec on average (in other cases, 12seconds for 11kb of data - from [~bwalding])
            * To address sorting by name and exclude certain items from flattening all possible items are loaded in memory
            ** jenkins.getAllItems()
            ** Exclude items that are children of multi-branch and matrix project
            ** Don’t see how we can avoid it unless the jobs are stored in some kind of db with indexed column to speed up sorting and only give limited records instead of all
            * new PipelineContainerImpl().getPipelines(items) should be pagination aware
            * At present it creates BluePipeline object for all possible items (ouch!)
            *Search API (page limit 26)*
            * Took 7 sec on average (in other cases, 12seconds for 11kb of data - from [~bwalding])
            * To address sorting by name and exclude certain items from flattening all possible items are loaded in memory
            ** jenkins.getAllItems()
            ** Exclude items that are children of multi-branch and matrix project
            ** Don’t see how we can avoid it unless the jobs are stored in some kind of db with indexed column to speed up sorting and only give limited records instead of all
            * new PipelineContainerImpl().getPipelines(items) should be pagination aware
            * At present it creates BluePipeline object for all possible items (ouch!)

            Also: check that runs/activity benefits from same pagination aware optimisation
            michaelneale Michael Neale made changes -
            Link This issue is duplicated by JENKINS-38087 [ JENKINS-38087 ]
            vivek Vivek Pandey made changes -
            Attachment search-perf-dogfood-remote.tiff [ 34031 ]
            vivek Vivek Pandey made changes -
            Attachment search-perf-dogfood-local.tiff [ 34032 ]
            michaelneale Michael Neale made changes -
            Assignee Vivek Pandey [ vivek ] Keith Zantow [ kzantow ]
            jamesdumay James Dumay made changes -
            Sprint 1.0-b05/b-06 [ 111 ] 26-september, 1.0-b05/b-06 [ 101, 111 ]
            michaelneale Michael Neale made changes -
            Epic Link JENKINS-35759 [ 171771 ] JENKINS-37957 [ 174099 ]
            michaelneale Michael Neale made changes -
            Sprint pacific, 1.0-b05/b-06 [ 101, 111 ] pacific, atlantic, 1.0-b05/b-06 [ 101, 106, 111 ]
            vivek Vivek Pandey made changes -
            Assignee Keith Zantow [ kzantow ] Vivek Pandey [ vivek ]
            vivek Vivek Pandey made changes -
            Link This issue is blocked by JENKINS-38981 [ JENKINS-38981 ]
            vivek Vivek Pandey made changes -
            Status In Progress [ 3 ] In Review [ 10005 ]
            vivek Vivek Pandey made changes -
            Status In Review [ 10005 ] Resolved [ 5 ]
            Resolution Fixed [ 1 ]
            jbriden Jenn Briden made changes -
            Status Resolved [ 5 ] Closed [ 6 ]

              People

              • Assignee:
                vivek Vivek Pandey
                Reporter:
                michaelneale Michael Neale
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: