Projet

Général

Profil

Actions

Bug #10447

fermé

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

Ajouté par Miguel Moquillon il y a presque 6 ans. Mis à jour il y a presque 6 ans.

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
Système d'exploitation:
Votre base de données:
Toutes
Livraison en TEST:
Livraison en PROD:

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 2 (0 ouverte2 fermées)

Lié à Silverpeas Core - Feature #12910: Lancer manuellement la purge du DataStore de la JCRClosedYohann Chastagnier28/02/2022

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

Actions

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

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

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é
Actions

Formats disponibles : Atom PDF