Image du projet 'Socle K-Sup' téléversée
  1. Socle K-Sup
  2. CORE-1576

L'optimisation de l'index lucene peut échouer si usage et volumétrie conséquents

    XMLWordImprimable

Informations

    • Bug
    • Résolution: Ne sera pas résolu
    • Mineur
    • Aucune
    • 6.02.15, 6.03.05, 6.04.03
    • Aucune
    • Aucune

    Description

      A la fin de chaque indexation, on appelle une méthode "optimisation" qui lance la commande forceMerge(1). Cette méthode semble comporter des risques et peut entraîner une corruption de l'index par exemple.

      Une solution serait de sortir cette action du job d'indexation, pour qu'elle ne soit effectuée que la nuit par exemple, que s'il y en a besoin (voir méthode IndexWriter.maybeMerge), et en s'assurant qu'aucun accès en lecture n'est fait en parallèle sur l'index.

      Exemple d'exception obtenue sur une volumétrie et une fréquentation forte sur le site, après exécution de l'indexation complète :

      2015-10-01 15:24:41.846 [Indexer.java:310] [ERROR] Exception lors de l'optimisation de l'index
      java.io.FileNotFoundException: _n.fdt
      	at org.apache.lucene.store.FSDirectory.fileLength(FSDirectory.java:284) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
      	at org.apache.lucene.index.SegmentInfo.sizeInBytes(SegmentInfo.java:303) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
      	at org.apache.lucene.index.TieredMergePolicy.size(TieredMergePolicy.java:635) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
      	at org.apache.lucene.index.TieredMergePolicy.useCompoundFile(TieredMergePolicy.java:613) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
      	at org.apache.lucene.index.DocumentsWriter.flush(DocumentsWriter.java:593) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
      	at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:3587) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
      	at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:3552) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
      	at org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:2516) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
      	at org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:2492) ~[lucene-core-3.6.2.jar:3.6.2 1423725 - rmuir - 2012-12-18 19:45:40]
      	at com.jsbsoft.jtf.textsearch.Indexer.optimisation(Indexer.java:307) ~[core-6.02.08.jar:na]
      	at com.jsbsoft.jtf.textsearch.IndexerJob.run(IndexerJob.java:133) [core-6.02.08.jar:na]
      	at com.jsbsoft.jtf.textsearch.IndexerJob.perform(IndexerJob.java:157) [core-6.02.08.jar:na]
      	at com.kportal.scheduling.spring.quartz.LogReportJob.execute(LogReportJob.java:58) [core-6.02.08.jar:na]
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [quartz-2.1.7.jar:na]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_80]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_80]
      	at java.lang.Thread.run(Thread.java:745) [na:1.7.0_80]

      Pièces jointes

        Liens des tickets

          Activité

            Personnes

              olivier.camon Olivier CAMON [X] (Inactif)
              alice.ark Alice ARK [X] (Inactif)
              Votes:
              1 Voter pour ce ticket
              Gérer les observateurs:
              4 Démarre l'observation de ce ticket

              Dates

                Création:
                Mise à jour:
                Résolue: