• docs out of order

  • Hemos intentado hacer de OpenKM una aplicación lo más intuitiva posible, sin embargo siempre viene bien algún consejo.
Hemos intentado hacer de OpenKM una aplicación lo más intuitiva posible, sin embargo siempre viene bien algún consejo.
Forum rules: Por favor, antes de preguntar algo consulta el wiki de documentación o utiliza la función de búsqueda del foro. Recuerda que no tenemos una bola de cristal ni poderes mentales, o sea que que para informar sobre un error es necesario que nos indiques tanto la versión de OpenKM que usas como la del navegador y sistema operativo. Para más información consulta Cómo informar de fallos de forma efectiva.
 #41662  by infraestructurati
 
Hola

Tengo instalado OpenKm 6.3.1 sobre un Centos 6.7 de 64 bits junto con un MySQL 5.6.23, actualmente tenemos
Code: Select all
SELECT COUNT(*) FROM OKM_NODE_BASE;
317515
Aproximadamente entre 30 a 40 usuarios concurrentes realizando operaciones de escritura y lectura, en información tenemos alrededor de 300GB y hemos asignado la siguiente configuración de memoria
Code: Select all
JAVA_OPTS="-Xms4096m -Xmx7168m -XX:PermSize=512m -XX:MaxPermSize=1024m -Djava.awt.headless=true -Dfile.encoding=utf-8"
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -Dlog4j.configuration=file://$CATALINA_HOME/conf/log4j.properties"
El programa funcionaba sin problema alguno hasta hace unas semanas comenzó a mostrar el siguiente error ante operaciones de escritura sobre el sistema.
Code: Select all
2016-04-22 18:20:12,567 [Hibernate Search: Directory writer-1] ERROR org.hibernate.search.backend.impl.lucene.PerDPQueueProcessor - Unexpected error in Lucene Backend:
org.hibernate.search.SearchException: Unable to optimize directoryProvider: org.apache.lucene.store.NIOFSDirectory@/usr/local/credifam/openkm3/openkm625p3/tomcat-openkm3/repository/index/com.openkm.dao.bean.NodeBase lockFactory=org.apache.lucene.store.SimpleFSLockFactory@7b31ae25
        at org.hibernate.search.store.optimization.IncrementalOptimizerStrategy.optimize(IncrementalOptimizerStrategy.java:84)
        at org.hibernate.search.backend.Workspace.optimizerPhase(Workspace.java:134)
        at org.hibernate.search.backend.impl.lucene.PerDPQueueProcessor.performOptimizations(PerDPQueueProcessor.java:139)
        at org.hibernate.search.backend.impl.lucene.PerDPQueueProcessor.run(PerDPQueueProcessor.java:110)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: background merge hit exception: _f0ce(3.1):C293763/23 _h4zd(3.1):C135682/5 _h4zf(3.1):c1 _h4zh(3.1):c1 _h4zj(3.1):c1 _h4zl(3.1):c1 _h4zn(3.1):c1 _h4zp(3.1):c1/1 _h4zr(3.1):c1 _h4zt(3.1):c1 into _h4zu [optimize]
        at org.apache.lucene.index.IndexWriter.optimize(IndexWriter.java:2413)
        at org.apache.lucene.index.IndexWriter.optimize(IndexWriter.java:2352)
        at org.apache.lucene.index.IndexWriter.optimize(IndexWriter.java:2322)
        at org.hibernate.search.store.optimization.IncrementalOptimizerStrategy.optimize(IncrementalOptimizerStrategy.java:81)
        ... 8 more
Caused by: org.apache.lucene.index.CorruptIndexException: docs out of order (123111 <= 123111 )
        at org.apache.lucene.index.FormatPostingsDocsWriter.addDoc(FormatPostingsDocsWriter.java:74)
        at org.apache.lucene.index.SegmentMerger.appendPostings(SegmentMerger.java:587)
        at org.apache.lucene.index.SegmentMerger.mergeTermInfos(SegmentMerger.java:528)
        at org.apache.lucene.index.SegmentMerger.mergeTerms(SegmentMerger.java:463)
        at org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:111)
        at org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:3938)
2016-04-22 18:20:21,718 [Lucene Merge Thread #0] ERROR org.hibernate.search.exception.impl.LogErrorHandler - Exception occurred org.apache.lucene.index.MergePolicy$MergeException: org.apache.lucene.index.CorruptIndexException: docs out of order (123111 <= 123111 )
        at org.apache.lucene.index.ConcurrentMergeScheduler.handleMergeException(ConcurrentMergeScheduler.java:517)
        at org.hibernate.search.backend.impl.lucene.overrides.ConcurrentMergeScheduler.handleMergeException(ConcurrentMergeScheduler.java:49)
        at org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:482)
Caused by: org.apache.lucene.index.CorruptIndexException: docs out of order (123111 <= 123111 )
        at org.apache.lucene.index.FormatPostingsDocsWriter.addDoc(FormatPostingsDocsWriter.java:74)
        at org.apache.lucene.index.SegmentMerger.appendPostings(SegmentMerger.java:587)
        at org.apache.lucene.index.SegmentMerger.mergeTermInfos(SegmentMerger.java:528)
        at org.apache.lucene.index.SegmentMerger.mergeTerms(SegmentMerger.java:463)
        at org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:111)
        at org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:3938)
En este punto hemos intentado reconstruir indicies, actualizar de versión la OpenKM (a la actual que es la 6.3.1) pero sin lograr encontrar solución al problema y en los foros y búsquedas no hemos logrado encontrar algo relacionado con el mismo.

No obstante, aún con el error el sistema si deja cargar la información , sin embargo, luego de 2 a 3 horas la openKm se bloquea y va poniendo lenta, hasta bloquer las acciones de los usuarios, para lo cual se debe reiniciar.

Queremos saber si el error se debe a que ya el repositorio es muy grande o es como tal un bug de la aplicación, o en su defecto lo mejor es implementar una solución como la que planteaste en viewtopic.php?f=14&t=19667 , utilizando HaProxy, GlusterFS y MySQL para poder distribuir la carga y usuarios a entornos más pequeños para no afectar el desempeño de la OpenKM
 #41665  by jllort
 
El problema - probablemente - es que se te ha corrompido el lucene, esta parte parece bastante clara. Razones ? puede haber varias, lo mas normal es una parada del equipo que se haya realizado incorrectamente. Aquí la solución es;
- para la aplicación
- eliminar la carpeta /index del repository
- ir a la administracion / tools / rebuild indexes -> rebuild lucene index ( esto va a tardar una cuantas horas en terminarse de ejecutar, durante este tiempo es mejor que no utiliceis la aplicación ).

300K ficheros es un repositorio mediano ( de hecho el mediado lo consideramos a partir de los 500K ), nosotros lo empezamos a consider grande a partir del millón.
 #41677  by infraestructurati
 
Buenas

Realizamos la operación indicada de borrar los índices y reconstruirlos; y efectivamente logró solucionar los mensajes de error relacionados con el indice que continuamente salían en la aplicación. Por otro lado, nos gustaría saber si es viable la solución que comente sobre el uso de HaProxy, GlusterFS y Mysql, para tener un sistema con 3 nodos de acceso, un repositorio compartido con gluster FS y una única base de datos, estos con el fin de poder segmentar los usuarios que ingresan a la aplicación y que las tareas de carga de información de alguno no afecten las tareas de lecturas de los otros.
 #41701  by jllort
 
Es factible, pero no con la versión community. No viene preparada para esta configuración. Esto ahora mismo solo esta disponible en la profesional.

About Us

OpenKM is part of the management software. A management software is a program that facilitates the accomplishment of administrative tasks. OpenKM is a document management system that allows you to manage business content and workflow in a more efficient way. Document managers guarantee data protection by establishing information security for business content.