Uploaded image for project: 'DSpace'
  1. DSpace
  2. DS-4229

SolrService queries a lot of collections and communities on each request


    • Type: Bug
    • Status: Volunteer Needed (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 6.3
    • Fix Version/s: None
    • Component/s: API, XMLUI
    • Labels:
    • Attachments:
    • Comments:
    • Documentation Status:


      The SolrService queries a lot of communities and collections on each request.

      The SolrService.createLocationQueryForAdministrableItems(..) is used to get the additional query parameters for Solr to find items that are restricted but in collection or communities the current user has admin permissions.

      On each request (at least with XMLUI and using some sidebarFacets) the SolrService get a list of the admin ResourcePolicies on collections and communities for the current user. For all returned communities the plugin get all contained collections. This causes a recursive search in this communities. If you have a lot of collections and communities inside a community with community admin permissions, this will cause a lot of queries.

      An additional problem is that Community.getCollections(..) and Community.getSubcommunities(..) return a sorted list of collections or communities. This triggers a query for the metadata values for the returned collections and communities.

      All in all this causes hundreds of queries on each request and causes a major slowdown. To reproduce you will need a user with community admin permissions on a community with some collections and/or communities nested.

      We may need a cache for the administrable items per user, but we need a clever way to invalidate this cache if the structure of the communities and collections is modified.

      Currently this problem only occurs in XMLUI (because you have sidebar facets on every page). I do not know if DSpace7 will contain sidebar facets, but it will trigger the same problem.


          Issue Links



              • Assignee:
                sulfrian Alexander Sulfrian
              • Votes:
                0 Vote for this issue
                2 Start watching this issue


                • Created: