Uploaded image for project: '[Read Only] - Hippo Repository'
  1. [Read Only] - Hippo Repository
  2. REPO-543

Authorization bitset is too slow

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Top
    • Resolution: Duplicate
    • 2.24.00
    • 2.24.01
    • None
    • None

    Description

      The calculation of the authorization bitset takes too much time. Some logs from a team concurrency test on the test server:

      21.11.2012 17:11:30 INFO [org.hippoecm.repository.query.lucene.ServicingSearchIndex.getAuthorizationBitSet():125] Creating authorization bitset for user 'fvanlankvelt-editor' took 80 ms.
      21.11.2012 17:11:30 INFO [org.hippoecm.repository.query.lucene.ServicingSearchIndex.getAuthorizationBitSet():125] Creating authorization bitset for user 'mdenburger-editor' took 48 ms.
      21.11.2012 17:11:30 INFO [org.hippoecm.repository.query.lucene.ServicingSearchIndex.getAuthorizationBitSet():125] Creating authorization bitset for user 'liveuser' took 76 ms.
      21.11.2012 17:11:32 INFO [org.hippoecm.repository.query.lucene.ServicingSearchIndex.getAuthorizationBitSet():125] Creating uthorization bitset for user 'mdenburger-editor' took 808 ms.
      21.11.2012 17:11:33 INFO [org.hippoecm.repository.query.lucene.ServicingSearchIndex.getAuthorizationBitSet():125] Creating authorization bitset for user 'mdenburger-editor' took 164 ms.
      21.11.2012 17:11:33 INFO [org.hippoecm.repository.query.lucene.ServicingSearchIndex.getAuthorizationBitSet():125] Creating authorization bitset for user 'mdenburger-editor' took 160 ms.
      21.11.2012 17:11:33 INFO [org.hippoecm.repository.query.lucene.ServicingSearchIndex.getAuthorizationBitSet():125] Creating authorization bitset for user 'mdenburger-editor' took 108 ms.
      21.11.2012 17:11:33 INFO [org.hippoecm.repository.query.lucene.ServicingSearchIndex.getAuthorizationBitSet():125] Creating authorization bitset for user 'fvanlankvelt-editor' took 216 ms.
      21.11.2012 17:11:37 INFO [org.hippoecm.repository.query.lucene.ServicingSearchIndex.getAuthorizationBitSet():125] Creating authorization bitset for user 'fvanlankvelt-editor' took 92 ms.
      21.11.2012 17:11:37 INFO [org.hippoecm.repository.query.lucene.ServicingSearchIndex.getAuthorizationBitSet():125] Creating authorization bitset for user 'fvanlankvelt-editor' took 212 ms.
      21.11.2012 17:11:37 INFO [org.hippoecm.repository.query.lucene.ServicingSearchIndex.getAuthorizationBitSet():125] Creating authorization bitset for user 'mdenburger-editor' took 152 ms.

      Background: for every search we compute an authorized bitset. This is needed for liveuser / previewuser in site. Once this bitset is computed, we get fast authorized queries, correct counts, correct faceted navigation, etc etc.

      We also use authorized bitsets for cms users now. This is not strictly needed, as we never did that in the past. However, once the bitset is computed, authorized searches will be faster. However, computing the
      bitset happens almost for every click after any change (even event log) in the repository.

      Now, we can reduce most likely the issue in the cms by having the cms users not use this authorized bitset any more : Thus, only for system users (live|preview user hst are such users) we compute
      authorization bitset. This should 'fix' the performance degrade for cms users regarding queries.

      Next is the HST : we cannot get rid of auth query there so we really need to compute it. However, we can compute it more efficiently by only computing bitsets for new indexreaders : This will be much
      faster, as most of the (large) indexreaders we already computed the bitset before. Downside is that this will be difficult code, involving concurrency, and might introduce bugs.

      Attachments

        Issue Links

          Activity

            People

              aschrijvers Ard Schrijvers
              mdenburger Mathijs den Burger (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: