Question / Problème

Qu'est-ce que le Tar Persistence Manager et comment le configurer ?

Réponse / Résolution

Tar Persistence Manager.

Vous pouvez stocker du contenu CRX dans un Persistence Manager. Par défaut, lorsque vous installez CRX 1.4, le Persistence Manager enregistre le contenu du référentiel dans les fichiers tar.

Rôle

Le Tar Persistence Manager (Tar PM) est un gestionnaire de rémanence sur disque qui utilise le format de fichier tar pour stocker le contenu. Il est utile dans les situations où des performances élevées de création et de modification de données sont requises (le format Tar étant uniquement en annexe, les écritures sont très efficaces).

Le clustering Tar PM permet à CRX de compenser les défaillances matérielles et logicielles en éliminant un seul point de défaillance (un serveur) tout en utilisant des applications sans modifications. Contrairement au stockage en cluster basé sur un serveur de base de données (également disponible en CRX), le clustering Tar PM est basé sur des systèmes de fichiers en réseau.

Le Tar PM par rapport à un PM à base de RDBMS.

Les Tar PM et les PM basés sur la base de données prennent en charge les transactions, tout système de fichiers et l'optimisation au moment de l'exécution ou en mode batch. Bien que le Tar PM soit une nouvelle technologie, il présente les avantages suivants par rapport à l'utilisation d'un gestionnaire de rémanence basé sur une base de données :

  • Les fichiers Tar sont en ajout seulement.
  • Les fichiers Tar peuvent être sauvegardés facilement en ligne.
  • Tar est un format de fichier standard, accessible via des outils connus, tels que tar, WinZip, etc.
  • Tar est un format indépendant de la plateforme.
  • Faible coût de possession et de licence.
  • Le Tar PM est spécialement conçu pour les dépôts JCR.
  • Le Tar PM est plus rapide que les gestionnaires de persistance basés sur RDBMS en cas d'utilisation JCR.
  • Le Tar PM tire parti de la très simple structure de données de paire clé-valeur de CRX.

Configuration du Tar PM

Les options de configuration sont les suivantes :

<PersistenceManager class="com.day.crx.persistence.tar.TarPersistenceManager">
    <param name="maxFileSize" value="256"/>
    <param name="autoOptimizeAt" value="2:00-5:00"/>
    <!-- since 1.4.1 -->
    <param name="bindAddress" value=""/>
    <param name="portList" value=""/>
    <param name="preferredMaster" value="false"/>
    <param name="lockClass" value="com.day.crx.util.NativeFileLock"/>
    <param name="lockTimeout" value="0"/>
    <param name="fileMode" value="rw"/>
    <param name="optimizeSleep" value="1"/>
    <param name="maxIndexBuffer" value="32"/>
</PersistenceManager>
maxFileSize (optionnel, la valeur par défaut est 256). Si le fichier de données actuel dépasse ce nombre (en mégaoctets), un nouveau fichier de données est créé (si la dernière entrée d'un fichier est très grande, un fichier de données peut être beaucoup plus grand, car les entrées ne sont pas réparties entre les fichiers). La taille maximale est de 1024 (1 Go). Les fichiers de données sont conservés lors de l’exécution. Selon la quantité de données stockée dans Tar PM, cette valeur doit être augmentée ou la limite des fichiers ouverts par processus doit être ajustée. Si cette valeur est modifiée lorsque les fichiers tar existent déjà, les nouveaux fichiers tar atteindront cette taille (les fichiers existants ne sont pas modifiés).
autoOptimizeAt (optionnel, la valeur par défaut est 2:00 - 5:00). S'optimise automatiquement au moment donné. Lorsque l’optimisation doit être exécutée. Exemple : 2:00 afin de s'optimiser automatiquement chaque matin à deux heures. Les fichiers d'index seront également fusionnés si nécessaire. Pour désactiver l'optimisation automatique, définissez la valeur sur "-0" (ce qui signifie en réalité 'stop optimisation à minuit').
bindAddress si la synchronisation entre les nœuds de cluster doit être effectuée sur une interface réseau spécifique. Par défaut, toutes les interfaces réseau sont utilisées. Par défaut : vide (utilisez toutes les interfaces).
portList La liste des ports à utiliser en mode maître. Par défaut, tout port libre est utilisé. Lors de l'utilisation d'un pare-feu, les ports ouverts doivent être répertoriés. Un port par espace de travail est requis. La liste des ports ou plages est prise en charge, par exemple : 9100-9110 or 9100-9110,9210-9220. Valeur par défaut : 0 (tout port).
preferredMaster applicable uniquement dans un environnement de clustering. Si cette option est activée, ce nœud de cluster tentera de devenir le maître même si un autre nœud de cluster a déjà été démarré. Valeur par défaut : (désactivé)
lockClass Le nom de la classe à utiliser pour le verrouillage. Sont pris en charge com.day.crx.util.NativeFileLock et com.day.crx.util.CooperativeFileLock. Lorsque vous utilisez un système de fichiers qui ne prend pas en charge le verrouillage de fichier (par exemple, certaines anciennes versions de NFS), la classe de verrouillage coopératif doit être utilisée. Valeur par défaut : com.day.crx.util.NativeFileLock
lockTimeout Lorsque le clustering est utilisé, la durée maximale (en millisecondes) à attendre pour verrouiller les fichiers partagés. Valeur par défaut : 0 pour illimité.
fileMode Le mode fichier comment ouvrir les fichiers de données. Les options sont "rw" (lecture-écriture), "r" (lecture seule), "rwd" (lecture-écriture, le contenu est écrit de manière synchrone), et "rws" (Les changements de lecture-écriture, de contenu et de métadonnées sont écrits de manière synchrone). Vous pouvez éventuellement ajouter une valeur + pour appeler fsync après l’écriture (mais cela ralentira beaucoup les écritures). Par défaut : "rw" pour lire-écrire.
optimizeSleep (optionnel, la valeur par défaut est 1), nombre de millisecondes à attendre après l'optimisation d'une transaction. La précision du point flottant est supportée.
maxIndexBuffer (optionnel, la valeur par défaut est 32), après une interruption anormale, au plus cette quantité de données (en mégaoctets) doit être analysée afin de recréer l'index d'entrée tar.

 

Les valeurs de configuration sont lues lors du démarrage du référentiel ; cela signifie que vous pouvez redémarrer le référentiel après avoir modifié la configuration.Remarque : si vous modifiez la configuration après la création d'un espace de travail, vous devez modifier les fichiers repository.xml et workspace.xml.

Optimisation des fichiers Tar

Voir l'optimisation TarPM

Vérification de la cohérence et de la réparation

Tar PM peut vérifier la cohérence du référentiel et résoudre les problèmes de cohérence au démarrage. Pour activer la vérification de la cohérence et résoudre automatiquement les problèmes, définissez les options suivantes dans repository.xml et workspace.xml, puis redémarrez CRX.

<param name="consistencyCheck" value="true"/>
<param name="consistencyFix" value="true"/>

Pour résoudre les problèmes de cohérence, le paramètre de vérification de cohérence doit être activé correctement.

Une fois le contrôle de cohérence terminé, désactivez les paramètres appropriés. Sinon, la vérification de cohérence sera toujours exécutée au démarrage de CRX.

Si les fichiers Tar sont volumineux

Si certains fichiers de données *.tar sont très volumineux, il existe d'importantes transactions. Les grosses transactions sont un problème (en tout cas - non seulement pour le Tar PM mais aussi pour la mémoire principale et d'autres sous-systèmes). Vous pouvez analyser ce qui se trouve dans un fichier de données *.tar en utilisant le fichier jsp dans la pièce jointe.

Passer d'un environnement standard à un environnement en cluster

Le moyen le plus simple de migrer vers un environnement en cluster consiste à exporter les données, à modifier la configuration, puis à importer les données.

Migration d'un environnement en cluster vers un environnement régulier

Le moyen le plus simple de migrer vers un environnement normal consiste à exporter les données, à modifier la configuration, puis à importer les données.

Versions concernées

CRX 1.4.1 et 1.4.2.

Telechargement

* showNodes_CRX22.zip
Version pour CRX 2.x.

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