Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-3003

Improve login performance with huge group membership

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.2.19, 1.3.4, 1.4
    • core

    Description

      As visible when running LoginWithMembershipTest default login performance (which uses the o.a.j.oak.security.principal.PrincipalProviderImpl to lookup the complete set of principals) suffers when a given user is member of a huge number of groups (see also OAK-2690 for benchmark data).

      While using dynamic group membership (and thus a custom PrincipalProvider would be the preferable way to deal with this, we still want to optimize PrincipalProvider.getPrincipals(String userId for the default implementation.

      With the introduction of a less generic implementation in OAK-2690, we might be able to come up with an optimization that makes use of the very implementation details of the user management while at the same time being able to properly secure it as we won't need to extend the public API.

      Attachments

        1. OAK-3003.patch
          57 kB
          Angela Schreiber
        2. group_cache_in_userprincipalprovider.txt
          5 kB
          Angela Schreiber
        3. OAK-3003_2.patch
          87 kB
          Angela Schreiber
        4. OAK-3003_3.patch
          98 kB
          Angela Schreiber
        5. OAK-3003_4.patch
          100 kB
          Angela Schreiber

        Issue Links

          Activity

            People

              angela Angela Schreiber
              angela Angela Schreiber
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: