Question, problème

Je souhaite conserver de l’espace disque, comment puis-je consolider et partager des fichiers de données CRX ?

Remarque : la même méthode peut être appliquée aux instances CQ5 WCM, version 5.2.1.

Réponse, résolution

Pour préserver l’espace du disque dans votre environnement, partagez le répertoire de banque de données CRX sur un partage de réseau entre plusieurs installations de CRX.

AVERTISSEMENT : ce processus requiert de déplacer votre répertoire de banque de données sur un lecteur de réseau partagé. Si vous déplacez votre répertoire de banque de données d’un dossier local vers un répertoire de réseau partagé, vous rencontrez une perte de performance considérable. Veuillez en tenir compte avant d’implémenter ce processus et peser les avantages en conséquence.

Tout d’abord, qu’est-ce qu’une banque de données ?

La banque de données est utilisée par CRX pour stocker des valeurs binaires importantes. Normalement, toutes les données de nœud et de propriété sont stockées dans un gestionnaire de persistance, mais pour les grandes binaires, un traitement particulier peut améliorer les performances et réduire l’utilisation du disque.

Comment combiner la banque de données entre plusieurs occurrences de CRX

Prenons un scénario dans lequel vous disposez de deux instances de CRX, A et B (auteur ou publication, peu importe). A est installé sous /opt/day/crxA et B est installé sous /opt/day/crxB. Dans une installation par défaut de CRX la banque de données est stockée dans <chemin vers instance>/crx-quickstart/repository/shared/repository/datastore.

Notez que le chemin d’accès au répertoire « partagé » peut être différent si vous avez configuré un répertoire « partagé » de grappe. La banque de données est stockée sous <chemin partagé>/repository/datastore.

Instructions : Copiez et consolidez/combinez les fichiers des instances A et B des banques de données (par exemple si A et B sont sur 2 serveurs physiques différents et utilisent un partage réseau commun /mnt/nfsshare1) :

sur le serveur A
%> cp -R /opt/day/crxA/crx-quickstart/repository/shared/repository/datastore /mnt/nfsshare1/combined-datastore

sur le serveur B
%> cp -R /opt/day/crxB/crx-quickstart/repository/shared/repository/datastore /mnt/nfsshare1/combined-datastore

Configurez repository.xml pour pointer vers le nouveau chemin d’accès à la banque de données pour les instances A et B. Ouvrez repository.xml dans l’instance A et modifiez le chemin d’accès partagé (/opt/day/cq5A/crx-quickstart/server/runtime/0/crx/WEB-INF/repository.xml)

<DataStore class="org.apache.jackrabbit.core.data.FileDataStore"> <param name="path" value="/mnt/nfsshare1/combined-datastore"/> <param name="minRecordLength" value="4096"/> </DataStore>

Comment exécuter la récupération de mémoire lorsque la banque de données est partagée par plusieurs instances de CRX

AVERTISSEMENT : S’applique uniquement à CRX1.4.2 ou aux versions patchées de la 1.4.1 étant donné que la récupération de mémoire ne fonctionne dans la 1.4.1 qu’après application d’un correctif de CRX (pour plus d’informations, contactez le support). Veuillez le tester dans un environnement de développement avant de mettre en œuvre cette dernière.

Lorsque plusieurs occurrences CRX utilisent la même banque de données : tout d’abord, appelez gc.scan() dans l’occurrence A, ensuite B et ainsi de suite. À la fin, appelez gc.deleteUnused() dans l’occurrence A :

Voici le code d’initialisation :

import org.apache.jackrabbit.core.data.GarbageCollector; //... GarbageCollector gc; SessionImpl si = (SessionImpl)session; gc = si.createDataStoreGarbageCollector(); // optional (if you want to implement a progress bar / output): gc.setScanEventListener(this).

Voici le code pseudo indiquant l’ordre d’exécution des analyses de la récupération de place sur les instances distinctes (cet exemple suppose un groupe de 3 instances, A, B et C) :

gcA.scan(); gcB.scan(); gcC.scan(); gcA.stopScan(); gcA.deleteUnused(); gcB.stopScan(); gcC.stopScan();

Une autre méthode est :

  1. Notez l’instant présent = X.
  2. Exécutez gc.scan() sur chaque référentiel.
  3. Suppression manuelle des fichiers dont la date de modification est antérieure à X

Pour plus d’informations, cliquez ici :http://wiki.apache.org/jackrabbit/DataStore#Running_Data_Store_Garbage_Collection_.28Jackrabbit_1.x.29

Versions concernées

CRX 1.4.2.X

[1] http://wiki.apache.org/jackrabbit/DataStore

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne