#1265: getFromLDAP optimization for groups retrival
----------------------------+-----------------------------------------------
 Reporter:  remi            |        Owner:  anonymous
     Type:  enhancement     |       Status:  new      
 Priority:  normal          |    Milestone:  0.75     
Component:  Authentication  |      Version:  0.71.5   
 Severity:  tweak           |   Resolution:           
 Keywords:                  |           Cd:  1 (Low)  
----------------------------+-----------------------------------------------
Old description:

> Actual process :
>
>  * SELECT ID,ldap_field, ldap_value FROM glpi_groups
>  * Build a small array with unique ldap_field
>  * Build a big array with ID,ldap_field,ldap_value
>  * retrieve LDAP attribute (ldap_field = small array)
>  * build array with group membership (searching in the big array)
>
> This could consume a lot of memory and  time (if a lot of groups exists :
> > 10000)
>
> Proposed optimized process (to be discussed)
>
>  * SELECT DISTINCT ldap_field FROM glpi_groups
>  * Build a small array with unique ldap_field
>  * retrieve LDAP attribute (ldap_field)
>  * for each attribute of the current user search for group ID
> (ldap_field,ldap_value)
>  * build array with group membership
>
> This will use more SQL query, but smaller.

New description:

 Actual process :

  * SELECT ID,ldap_field, ldap_value FROM glpi_groups
  * Build a small array with unique ldap_field
  * Build a big array with ID,ldap_field,ldap_value
  * retrieve LDAP attribute (ldap_field = small array)
  * build array with group membership (searching in the big array)

 This could consume a lot of memory and  time (if a lot of groups exists :
 > 10000)

 Proposed optimized process (to be discussed)

  * SELECT DISTINCT ldap_field FROM glpi_groups
  * Build a small array with unique ldap_field
  * retrieve LDAP attribute (ldap_field)
  * for each attribute of the current user search for group ID
 (ldap_field,ldap_value)
  * build array with group membership

 This will use more SQL query, but smaller.

 A new index will be usefull on ldap_value (better cardinality than
 ldap_field) for this solution.

-- 
Ticket URL: <https://dev.indepnet.net/glpi/ticket/1265#comment:1>
GLPI <https://dev.indepnet.net/glpi/>
Gestion Libre de Parc Informatique
_______________________________________________
Glpi-bugtrack mailing list
[email protected]
https://mail.gna.org/listinfo/glpi-bugtrack

Répondre à