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.
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.