Image du projet 'Socle K-Sup' téléversée
  1. Socle K-Sup
  2. CORE-2011

Optimisation de l'initialisation des permissions

XMLWordImprimable

    • Icon: Demande d'amélioration Demande d'amélioration
    • Résolution: Résolu
    • Icon: Majeur Majeur
    • 6.04.29
    • 6.04.28
    • Gestion des rôles

      Dans le cadre du projet CESI, nous avons des profils utilisateur avec plus de 700 rôles.
      Lors de la phase de login, une initialisation des permissions est réalisée afin de calculer les permissions par rapport aux rôles.
      (AutorisationBean.initialiserPermissionsRoles)

      Dans cette méthode, on fabrique une liste de permissions pour laquelle on va comparer chaque élément avec tous les autres afin de déterminer la filiation.
      Dans notre cas, les 720 rôles génèrent 630 permissions à comparer, soit 396000 comparaisons. Bien que relativement rapide (une comparaison de périmètre prend en moyenne 150µs), le nombre de comparaisons fait que la phase de login peut durer plusieurs dizaines de secondes (jusqu'à 180s en prod CESI).
      La presque totalité des 150µs est consommée par la recherche de filiation des rubriques (serviceRubrique.isParentSection)

      Un précalcul des "ancestors" des rubriques permet d'améliorer considérablement les performances (1000x plus performant)

            frederic.rapin Frédéric RAPIN
            frederic.rapin Frédéric RAPIN
            Votes:
            1 Voter pour ce ticket
            Gérer les observateurs:
            3 Démarre l'observation de ce ticket

              Création:
              Mise à jour:
              Résolue: