Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-10447

sling:vanityPath are being searched during startup in the entire repository, including version storage

    XMLWordPrintableJSON

    Details

      Description

      We have a lot of pages on our production author instance. We also have a lot of pages that use sling:vanityPath. Everytime a page is replicated, a new version is created.

      We have roughly 168.000 pages in our instance. In the /content node, there are approx. 4500 pages with vanity URLs. In the version storage, however, there are 120.000+ entries that have a sling:vanityPath defined.

      When starting up Apache Sling, the Resource Resolver fetches all the existing sling:vanityPath entries, which it fails to do, because of the large amount of sling:vanityPath in the version storage.

      In the code, I specifically see checks (when processing the query results) about the version storage. However, this should have been put inside the query as a filter, in order to avoid fetching such a large amount of query result nodes:
      https://github.com/apache/sling-org-apache-sling-resourceresolver/blob/4406b8fed0fedb48202fc6472fb552c36aa06e35/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java#L1158

      I propose to update the query with a "not isdescendantnode"-check, to make sure we do not return any content from the version storage and thus make the default query limits of 100.000 nodes work again.

        Attachments

        1. with-path-restrictions.json
          8 kB
          Henry Kuijpers
        2. without-path-restrictions.json
          2 kB
          Henry Kuijpers

          Issue Links

            Activity

              People

              • Assignee:
                rombert Robert Munteanu
                Reporter:
                Henry Kuijpers Henry Kuijpers
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 6h 50m
                  6h 50m