Gestion du répertoire /data/lucene en Liferay 6.2

Gérald CAUVIN, modified 6 Years ago. Junior Member Posts: 39 Join Date: 3/4/15 Recent Posts
Bonjour,nous avons actuellement un environnement Liferay 6.2 tournant sur 5 VMs.Nous avons un répertoire data/lucene qui est assez proche  de 7Go.Pourriez vous me dire si cela est normal d'avoir répertoire d'une telle taille? et comment est-il de gérer au mieux ce répertoire.Merci à vousGC
thumbnail
Eric COQUELIN, modified 6 Years ago. Expert Posts: 254 Join Date: 11/3/13 Recent Posts
Bonjour Gérald,
Un répertoire de 7Go n'a rien d'extraordinaire si vous disposez un nombre important de données.
A savoir que Liferay indexe par défaut:
  1. vos articles de journaux (web content)
  2. vos images (les métadonnées)
  3. vos documents (PDF, et autres)
  4. les différentes versions des documents/fichiers
  5. les données correspondantes aux développements spécifiques
  6. et bien d'autres données (utilisateurs, etc.)
Pour évaluer la pertinence de cette taille de répertoire, il faut donc que vous preniez en considération les données que vous manipulez depuis Liferay.
Bonne journée,
Gérald CAUVIN, modified 6 Years ago. Junior Member Posts: 39 Join Date: 3/4/15 Recent Posts
Bonjour,merci pour votre réponse. Je parle bien uniquement du répertoire data/luceneComme c'est un environnement de production, du coup cela reste une taille normal.Par contre, autres questions:
Comme je suis dans un mode Cluster, actuellement, j'ai un répertoire data/lucene par serveur.
1- Ne devrais-je pas privilégier un répertoire data/lucene commun aux 5 serveurs (via NFS)?Actuellement, je fais un montage NFS pour le répertoire data/document_library sur un serveur distant pour gérer les PDF.2- Ne faudrait-il pas que je purge ce répertoire via des paramètres Liferay dans le portal-ext.properties. J'ai vu qu'il existait des paramètres .cordialementGC
thumbnail
Eric COQUELIN, modified 6 Years ago. Expert Posts: 254 Join Date: 11/3/13 Recent Posts
Gérald,
Je ne matrise pas Lucene en cluster.  D'après ce fil, j'ai l'impression que chaque instance peut avoir son propre répertoire car la réplication est assurée par la configuration en cluster.
https://liferay.dev/forums/-/message_boards/message/69165700
Il me semble dangereux (à l'instinct) que le répertoire soit partagé au risque que chaque instance vienne écrire en même temps dans les mêmes fichiers avec des corruptions de données à la clé !
Gérald CAUVIN, modified 6 Years ago. Junior Member Posts: 39 Join Date: 3/4/15 Recent Posts
Merci pour les explications, j'avais plutôt interprété la même chose.Pour le moment, je ne vais pas m'aventurer plus loin. Je vais laisser chaque répertoire indépendant par serveur et ajouter une surveillance sur le stockage.MerciGC
Olivier Bonnet-Torrès, modified 6 Years ago. Regular Member Posts: 162 Join Date: 7/11/08 Recent Posts
Bonsoir,Lorsque l'indexage est paramétré sur Lucene, en mode cluster, le répertoire Lucene est spécifique à chaque noeud. Il ne doit surtout pas être partagé. Le risque est une corruption (un noeud écrit, et les autres ne sont pas informés, ce qui fera diverger les index "connus"). Par ailleurs, le noeud qui écrit pose un lock sur le système de fichiers, ce qui bloque toute opération pour les autres noeuds.
Pour cette raison, l'utilisation de Lucene sur un cluster passe par la configuration d'un fond de panier (cluster-link, jgroups). Ceci permet aux noeuds de s'informer des mises à jour locales et de partager le contenu à réindexer sur les autres noeuds.
Pour nettoyer les index, il faut lancer un réindexage via la console d'administration. Le signal de réindexage est partagé entre les différents noeuds.
Jamie Sammons, modified 6 Years ago. Junior Member Posts: 39 Join Date: 3/4/15 Recent Posts
Merci Olivier,Actuellement, j'utilise jgroups pour gérer mon cluster.Tu dis "Pour nettoyer les index, il faut lancer un réindexage via la console d'administration".  Ne sachant pas sur quel nœud on se trouve lorsqu'on se connecte sur la console d'administration, faut-il passer sur chaque nœud pour faire ce nettoyage?J'ai déjà constaté ce type de problème lors d'une migration ou l'ajout d'une VM. Après chargement de la base de données la première fois, j'ai été obligé de lancer une re-indexation sur chacun des noeuds. Je m'y suis peut-être mal pris ou pas adopter la bonne méthode?
A quel fréquence et dans quel cas faut-il nettoyer les index? ceci est-il automatisable? et est-ce une nécessité de le faire
MerciGC
Olivier Bonnet-Torrès, modified 6 Years ago. Regular Member Posts: 162 Join Date: 7/11/08 Recent Posts
Bonsoir,Tout dépend du code exécuté sur le serveur (les développements "custom").
Il existe 2 types de cache applicatif dans Liferay: le niveau local (chaque noeud gère son propre cache et pour nettoyer il faut passer sur chaque noeud et appuyer sur "Effacer le contenu du cache de cette VM.") et le niveau partagé (chaque noeud maintient sa propre copie synchronisée et pour nettoyer il suffit d'appeler "Effacer le contenu du cache à travers le cluster." sur n'importe quel noeud).Ces opérations ne sont pas prévues pour être récurrentes, la réindexation périodique étant déclenchée par Liferay.Pour pouvoir automatiser de manière contrôlée, un développement spécifique doit être fait (notamment pour exposer une API par exemple).