Skip to content

Improve performance of dashboard/works page - #7570

Open
bbpennel wants to merge 3 commits into
mainfrom
dashboard-works-performance
Open

Improve performance of dashboard/works page#7570
bbpennel wants to merge 3 commits into
mainfrom
dashboard-works-performance

Conversation

@bbpennel

@bbpennel bbpennel commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Pull list of depositable admin sets from solr rather than from repository, otherwise for wings or valkyrie/fedora it retrieves the record for every admin set when all we need is info stored in solr. Our dashboard/works page was taking 25 seconds to load in hyrax 5, which was new.

Type of change (for release notes)

notes-bugfix

Detailed Description

We observed that the dashboard/works page was taking 25 seconds to load in our QA environment after upgrading from hyrax 4 to 5, but it was only taking 1-2 seconds in our Hyrax 4 instance with identical data. We are using Wings at this point, before we start looking at migrating to Fedora 7.

It turns out that it was populating the list of admin sets by querying activefedora for each admin set, and our repository contains 30 of them. This was a new behavior in Hyrax 5, since it was now using the queryService.find_many_by_ids method, but that retrieves far more information than is needed for populating this UI component.

This PR switches to pulling the list directly from solr, which gets performance back to the Hyrax 4 level. I have the behavior change for both Wings and Valkyrie, since it looks like the Valkyrie/fedora behavior will have the same problem, but I have not tested there yet.

Changes proposed in this pull request:

  • Using solr directly for retrieving admin sets info for dashboard/works facet filter.

@samvera/hyrax-code-reviewers

…tory, otherwise for wings or valkyrie/fedora it retrieves the record for every admin set when all we need is info stored in solr
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Test Results

    17 files  ± 0      17 suites  ±0   3h 29m 26s ⏱️ - 4m 15s
 8 013 tests + 4   7 706 ✅ + 4  307 💤 ±0  0 ❌ ±0 
27 418 runs  +12  26 819 ✅ +12  599 💤 ±0  0 ❌ ±0 

Results for commit c75e0f5. ± Comparison against base commit 1d0e165.

This pull request removes 448 and adds 452 tests. Note that renamed tests count towards both.
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplate:0x00007f0971e92948>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplate:0x00007f42858880c8>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplate:0x00007f5ab5b9f660>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplate:0x00007fbbf5e18fd0>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplateAccess:0x00007f091ff5fb48>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplateAccess:0x00007f428cdfbe18>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplateAccess:0x00007f5ab5dfdd58>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplateAccess:0x00007fbbe9b18490>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to destroy AdminSet: 9ec1ae43-f3e8-4078-9bca-617653ca8f7c
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to destroy Hyrax::AdministrativeSet: 1d4b0e43-38eb-4258-ba35-5d5fd613d12b
…
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplate:0x00007f7b3d94ce50>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplate:0x00007f8bbe163220>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplate:0x00007f964a489760>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplate:0x00007f96c0a25f18>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplateAccess:0x00007f7b3d9c9d88>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplateAccess:0x00007f8babe43700>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplateAccess:0x00007f9658f39b20>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to create #<Hyrax::PermissionTemplateAccess:0x00007f96c2005798>
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to destroy AdminSet: c5ab0044-9368-4458-b6bf-804524b30028
spec.abilities.ability_spec ‑ Hyrax::Ability AdminSets and PermissionTemplates a user without edit access is expected not to be able to destroy Hyrax::AdministrativeSet: 44075d08-0ea0-4fea-aa74-379d0333ed7d
…

♻️ This comment has been updated with latest results.

…in set was just added but not indexed yet, which mostly affects tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant