Le Monday 17 December 2007 12:15:47 Gabriel Landais a écrit :
Nicolas Dumoulin a écrit :
Afin de valider ce choix, nous avons procédé à différents tests, notamment de montée en charge. Ainsi, un test a créé une base de 25 000 documents, contenant chacun entre 10 000 et 30 000 mots d'un dictionnaire de 150 000 mots (entre 2 et 7 lettres). Soit au total environ 11Gb de données indexées. L'index en lui même pèse 3Gb, le contenu n'étant pas stocké.
Qu'en est-il de cet index ? Doit-il être maintenu en mémoire ?
L'index est constitué d'un seul dossier contenant des segments d'index. Les données présentent en mémoire sont les documents ajoutés qui n'ont pas encore été commités. Ce commit peut être déclenché si le nombre de documents en mémoire dépasse une constante (implantation par Lucene), ou lors de l'appel explicite de l'appel du commit de Database (implanté dans LuceneDatabase). Le premier ne provoque pas l'invalidation des lecteurs en cours. Les segments écrits sur le disque ne sont pas utilisé par les nouvelles requêtes. Le second écrit lui aussi les données mais crée un nouveau lecteur afin de rendre visible les données aux requêtes suivantes. De plus, il ferme les lecteurs ouverts à la fin des requêtes en cours.
Merci pour ces éclaircissements.
Lucene permet le stockage de l'index dans différentes implémentation de Directory. Nous utilisons FSDirectory afin d'écrire les données sur le disque, mais il existe une implantation RAMDirectory afin de conserver l'index en mémoire. Je n'ai pas exploré cette voie, la base devant être persistée, afin de ne pas recréer l'index à chaque ouverture de l'application.
FSDirectory semble approprié dans notre contexte. -- Nicolas Dumoulin Ingénieur d?études - Cemagref, LISC +33 (0)4.73.44.07.29 -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: non disponible Type: application/pgp-signature Taille: 189 octets Desc: This is a digitally signed message part. Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel...