Projet

Général

Profil

Bug #10447

La taille du dossier datastore de la JCR s'accroie au fil du temps

Ajouté par Miguel Moquillon il y a 11 jours. Mis à jour il y a 6 jours.

Statut:
Closed
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
08/02/2019
Echéance:
% réalisé:

100%

Temps estimé:
Navigateur:
Tous
Votre version de Silverpeas:
6.0
Operating System:
Votre base de données:
Toutes

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).


Demandes liées

Duplique GED - Bug #10432: La réservation d'un document une fois libéré n'est pas supprimé de la jcr/datastoreClosed24/01/2019

Actions

Historique

#2

Mis à jour par Yohann Chastagnier il y a 10 jours

  • Statut changé de New à In progress...
#3

Mis à jour par Yohann Chastagnier il y a 6 jours

  • 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é.

PR : https://github.com/Silverpeas/Silverpeas-Core/pull/960

#4

Mis à jour par Yohann Chastagnier il y a 6 jours

  • Assigné à mis à Yohann Chastagnier
#5

Mis à jour par Miguel Moquillon il y a 6 jours

  • Statut changé de Resolved à Integration in progress...
#6

Mis à jour par Miguel Moquillon il y a 6 jours

  • Statut changé de Integration in progress... à Closed
#7

Mis à jour par Nicolas Eysseric il y a 4 jours

  • Duplique Bug #10432: La réservation d'un document une fois libéré n'est pas supprimé de la jcr/datastore ajouté

Formats disponibles : Atom PDF