assemblee-virtuelle / semapps

A toolbox to create semantic web applications
https://semapps.org
Apache License 2.0
87 stars 8 forks source link

performance de verification de droit améliorable #1074

Closed simonLouvet closed 6 months ago

simonLouvet commented 1 year ago

Problématique performance de verification de droit améliorable

Composants concernés @semapps/webacl

Proposition passer de

SELECT ?auth ?p ?o
WHERE { GRAPH <${graphName}> {
  ?auth a acl:Authorization ;
    acl:mode acl:${mode};
    acl:${accesToOrDefault} <${resource}>;
    ?p ?o.
} }

à

SELECT ?auth ?p ?o
WHERE { GRAPH <${graphName}> {
  ?auth acl:${accesToOrDefault} <${resource}>;
    a acl:Authorization ;
    acl:mode acl:${mode};
    ?p ?o.
} }

la plus grande restriction dans les premiers arguments du where permet à jena d'explorer moins de triplets

simonLouvet commented 1 year ago

Cette amélioration de performance est particulièrement utile lors de la génération du cache des droits utilisateur sur des volume important de données. J'ai un cas réel en production qui prends plusieurs heure lors de la génération du cache d'ACL pour un user.