Bug #10447
ferméLa taille du dossier datastore de la JCR s'accroie au fil du temps
100%
Description
L'édition en ligne d'un document se fait par WebDAV et sa mise en œuvre est déléguée à Jackrabbit, l'implémentation de la JCR utilisée par Silverpeas. Pour ce faire, le document est placé directement dans la JCR. Or, pour des raisons de performances d'accès et de manipulations, tout contenu qui excède une certaine taille est stocké sur le système de fichier et non en mémoire ; le contenu est stocké dans une sous-arborescence de dossiers dans ce qui est appelé le datastore et qui correspond au répertoire jcr/repository/datastore
, calculé à partir du hash du contenu. Toute entrée (ou nœud) dans le répertoire datastore/
est immuable, signifiant qu'à chaque sauvegarde d'un même document un nouveau nœud est créé. Or, au déverrouillage d'un document, tous les nœuds qui ont été créé dans le datastore
lors de l'édition en ligne ne seront pas supprimés ; la taille du répertoire datastore
va croître sans cesse.
L'objectif de cette correction est d'appeler le garbage collector de Jackrabbit pour nettoyer le datastore
de toute entrée non référencée (autrement dit qui ne soit pas en cours d'édition en ligne).
Mis à jour par Yohann Chastagnier il y a presque 6 ans
- Statut changé de New à In progress...
Mis à jour par Yohann Chastagnier il y a presque 6 ans
- Statut changé de In progress... à Resolved
- % réalisé changé de 0 à 100
Un système de purge du répertoire datastore a été mis en place.
Dès lors qu'un utilisateur libère ou met à jour un document office, un traitement de purge des éléments inutiles dans le répertoire datastore est planifié pour s'exécuter après un certain délai.
A chaque libération ou mise à jour d'un tel document :- si le délai est inférieur strictement à 1 jour, la planification du traitement de purge est réinitialisée
- si le délai est supérieur ou égal à 1 jour, deux cas de figures :
- si aucune purge n'est encore planifiée, elle est alors planifiée pour s'exécuter après le délai en question
- sinon, aucune modification de planification n'est réalisée
(une fois la purge effectuée, elle n'est alors plus planifiée)
Le délai est paramétrable à partir du fichier de propriétés $SILVERPEAS/org/silverpeas/util/attachment/Attachment.properties au niveau du paramètre jcr.datastore.garbage.collector.delay
. Il est par défaut défini à 7200 minutes, c'est à dire 5 jours.
Si le délai est paramétré à zéro ou avec une valeur négative, le traitement de purge est désactivé.
Mis à jour par Yohann Chastagnier il y a presque 6 ans
- Assigné à mis à Yohann Chastagnier
Mis à jour par Miguel Moquillon il y a presque 6 ans
- Statut changé de Resolved à Integration in progress...
Mis à jour par Miguel Moquillon il y a presque 6 ans
- Statut changé de Integration in progress... à Closed
Mis à jour par Nicolas Eysseric il y a presque 6 ans
- Duplique Bug #10432: La réservation d'un document une fois libéré n'est pas supprimé de la jcr/datastore ajouté
Mis à jour par Yohann Chastagnier il y a plus de 2 ans
- Lié à Feature #12910: Lancer manuellement la purge du DataStore de la JCR ajouté