Nicola Scendoni created JCRVLT-804:
--------------------------------------

             Summary: Slow performances when importing large groups
                 Key: JCRVLT-804
                 URL: https://issues.apache.org/jira/browse/JCRVLT-804
             Project: Jackrabbit FileVault
          Issue Type: Improvement
            Reporter: Nicola Scendoni


When importing group membership filevault [perform following 
operations|https://github.com/apache/jackrabbit-filevault/blob/4da7c7c7bea23935daeb29989f735f7de5d7b2e6/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/spi/impl/jcr20/JackrabbitUserManagement.java#L129-L154]:
 # iterate over all the members
 # check if the user exists
 # check if they are already members
 # call the method Group.addMember(User)

The last method on step 4 check again if the user exists and if is already 
member of the group and if he exists, and then add him to the group.

The import of a group with few thousand  members can take several minutes.

If we use the method 
[Group.addMembers(String[])|https://jackrabbit.apache.org/oak/docs/apidocs/org/apache/jackrabbit/api/security/user/Group.html#addMembers(java.lang.String...)]
 the group can be imported in few seconds.

We may evaluate one of the following:
 # Skip all the validations and import all the users with a single call to 
[Group.addMembers(String[])|https://jackrabbit.apache.org/oak/docs/apidocs/org/apache/jackrabbit/api/security/user/Group.html#addMembers(java.lang.String...)].
 # Maintain the validations only in OAK or in the filevault, but not in both.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to