Project

General

Profile

Actions

Bug #10447

closed

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

Added by Miguel Moquillon almost 3 years ago. Updated almost 3 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Start date:
02/08/2019
Due date:
% Done:

100%

Estimated time:
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).


Related issues

Is duplicate of GED - Bug #10432: La réservation d'un document une fois libéré n'est pas supprimé de la jcr/datastoreClosedMiguel Moquillon01/24/2019

Actions
Actions #2

Updated by Yohann Chastagnier almost 3 years ago

  • Status changed from New to In progress...
Actions #3

Updated by Yohann Chastagnier almost 3 years ago

  • Status changed from In progress... to Resolved
  • % Done changed from 0 to 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

Actions #4

Updated by Yohann Chastagnier almost 3 years ago

  • Assignee set to Yohann Chastagnier
Actions #5

Updated by Miguel Moquillon almost 3 years ago

  • Status changed from Resolved to Integration in progress...
Actions #6

Updated by Miguel Moquillon almost 3 years ago

  • Status changed from Integration in progress... to Closed
Actions #7

Updated by Nicolas Eysseric almost 3 years ago

  • Is duplicate of Bug #10432: La réservation d'un document une fois libéré n'est pas supprimé de la jcr/datastore added
Actions

Also available in: Atom PDF