Uploaded image for project: 'OpenIDM'
  1. OpenIDM
  2. OPENIDM-5465

Performance Issue updating conditional role memberships

    Details

    • Target Version/s:
    • Story Points:
      5
    • Sprint:
      OpenIDM Sprint 60
    • Support Ticket IDs:

      Description

      While investigating OPENIDM-5415, I noticed major latencies when updating ~70 conditional roles in a repo with 1000 users. The calculations performed by conditionalRoles.updateRole would result in populating a role members array with ~35 managed user instances - the ~35 managed users who were granted the role prior to the update were not present in the array, and the new grantees are present, for a diff total of ~70. The calculations performed by conditionalRoles.updateRole to generate the updated role membership array takes ~1 second. The processing of these updates in ManagedObjectSet#update took up to several minutes. The offending invocations made from ManagedObjectSet#update are validateRelationshipFields(line 485) and persistRelationships (line 506). Both can take >30 seconds to return.

      To reproduce:
      1.Create a repo with 1000 users using Huck's resource creator.
      2.Create a conditional role with a condition like "mail sw 'a'".
      3.Update this role condition to look for a different character - e.g. b.

      The really slow latencies are not always observable - usually it is only 'somewhat' slow - i.e. 7-15 seconds - but still seemingly beyond of expected latencies when updating ~100 records.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                jenny.zhang Jenny Zhang
                Reporter:
                dhogan Dirk Hogan
              • Votes:
                2 Vote for this issue
                Watchers:
                12 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: