Archivado en: ‘Sin categoría’ .

Zebraqueue

6 septiembre, 2010
A principios de 2010, luego de haber tenido numerosos problemas con los índices de zebra (que se traducía en errores fatales en los resultados de las búsquedas) nos pusimos en contacto con los desarrolladores de Koha. El problema radicaba en el daemon zebraqueue-daemon y nos recomendaron dejar de utilizarlo de manera urgente. No queda ni quedó claro por que esta recomendación no se traduce en una actualización de la documentación ni en la definitiva eliminación del script.

Organización de la información en Koha

En una instalación de Koha utilizando zebra existen dos bases de datos paralelas:

  • La base de datos relacional (MySQL o PostgreSQL)
  • Zebra, motor de búsqueda de texto completo.

La base de datos relacional mantiene toda la información de la lógica de negocios de Koha, y distribuida en varias tablas, toda la información de los registros bibliográficos y de autoridad.
Especificamente, en la tabla biblioitems se almacena en el campo marcxml el registro MARC de cada título, con la información de los ejemplares (952).

Zebra lo que hace es indexar este campo para todos los registros de la base.

El problema

Cada vez que un registro es modificado es necesario avisarle a Zebra que tiene que actualizar los índices. Esto se hace en varias situaciones:

  • Se agrega un título.
  • Se agrega una autoridad.
  • Se modifica un registro (bibliográfico o de autoridad).
  • Se agregan existencias (ejemplares/items) a un título existente.
  • Se circula un ejemplar…

Los puntos suspensivos del último caso deberían dar una pista del problema: Como la información de disponibilidad de los ejemplares aparece en los resultados de la búsqueda, es almacenada en el campo marcxml y por lo tanto debe ser reindexada.

Como el reindexado es una rutina realizada por una aplicación externa a koha (el comando zebraidx) hay situaciones en las que si no se hacen muy cuidadosamente los controles se da el caso de registros que no son reindexados y provocan los mensajes de error mencionados antes.

El script zebraqueue-daemon tenía varios problemas de este tipo.

Solución (a medias)

Cuando consultamos a la gente de Koha en el IRC, ellos nos dijeron que la forma correcta de mantener actualizados los indices es a través de la ejecución a través de cron del script rebuild_zebra.pl. Así lo implementamos:

En el archivo /etc/cron.d/koha
*/1 * * * * koha KOHACONF=/etc/koha/koha-conf.xml PERL5LIB=/usr/share/koha/lib /usr/share/koha/bin/migration_tools/rebuild_zebra.pl -a -b -z 2>&1 > /dev/null

La solución recomendada tiene dos problemas importantes para nosotros:

  • El intervalo de 1 minuto, el mínimo permitido por cron, dificulta la catalogación con autoridades.
  • Lanzar un nuevo proceso Perl de a intervalos tan cortos significa una carga muy grande (e inútil) en servidores con muchas instancias de koha corriendo simultaneamente.

La solución que implementamos y compartimos

Decidí reescribir el script zabraqueue-daemon de manera que haga las tareas del cron de a intervalos mas pequeños, y además escribirlo en perl de una manera que no lance un nuevo proceso del intérprete Perl por cada corrida.

Para la reescritura utilicé el módulo POE de Perl, e hice una refactorización del script rebuild_zebra.pl como librería. El resultado fue enviado a Koha y espera su aceptación para inclusión en el Trunk. Lo comparto por esta vía.

Hay que descargar este archivo y descomprimirlo en el directorio de nuestro koha. Recomiendo descomprimirlo en cualquier otro lugar, revisar los archivos que contiene, y después copiarlos a la carpeta de Koha. Reescribirá dos archivos originales de Koha.

Para dejar corriendo el nuevo zebraqueue-daemon editar el archivo bin/koha-zebraqueue-ctl.sh de manera que refleje los directorios y base de datos de nuestro koha. Después de eso seguir los pasos usuales para hacer que sea un servicio al inicio en nuestro Linux, como se indica en los archivos INSTALL.* que vienen con el instalador.

Los intervalos de actualización que implementa el script son por defecto de 10 segundos para autoridades y 1 minuto para registros bibliográficos. No obstante, se pueden utilizar las siguientes variables de configuración de uso local (que deben agregarse en las preferencias, con «Nueva preferencia») para controlar los intervalos:

  • authUpdateRatio:  Número que multiplicado por 10 da la cantidad de segundos entre actualización (por ejemplo 1 daría un intervalo de 10 segundos)
  • biblioUpdateMinutes:  Cantidad de minutos entre actualización.

UPDATE: A pedido de Pablo completo este post con nueva información. Haciendo todo lo que faltaba a último momento para que el zebraqueue daemon fuera incluido en el lanzamiento de 3.4 cometí un error en la definición de las preferencias que utilizaría el daemon. Por lo tanto fue rechazada su inclusión y postergada hasta 3.6.

Fue una mala noticia, pero al menos recibimos un buen feedback de este esfuerzo realizado. En la U.N.C. lo estamos utilizando en producción sin ningún tipo de inconvenientes.

¡Migración completa!|Migration complete!

31 mayo, 2010

A la comunidad de Koha,

La Universidad Nacional de Córdoba (UNC) esta orgullosa de anunciar la finalización de su programa de migración de sus bibliotecas a MARC21 y al Sistema Integrado de Gestión Bibliotecaria Koha.

Luego de haber recorrido este largo camino, queremos compartir nuestra experiencia con la comunidad.

En 2007, las nuevas autoridades de la UNC estimularon una renovada discusión en la comunidad bibliotecaria de la institución sobre la necesidad de contar con una infraestructura de software y formatos de catalogación común para las bibliotecas. La discusión fue larga y se consideraron inclusive varias soluciones propietarias. Muchos consideramos que era necesario apostar al software libre y encontramos en la calidad de Koha un muy buen ejemplo de la calidad del software libre.

Para demostrar la viabilidad de implementar Koha como la solución al problema planteado, a principio de 2008, la Facultad de Matemática, Astronomía y Física (FaMAF) contrató un bibliotecario y dos profesionales en IT para comenzar la migración de su propia biblioteca. El staff de la biblioteca se ofreció como voluntario para ayudar en la tarea.

Este equipo aprendió a realizar instalaciones de Koha y la migración de los datos. Para esta etapa se instaló Koha v3.0beta1. Los datos se encontraban originalmente en CDS/ISIS.

Para junio de 2008 la instalación era completamente funcional y en setiembre del mismo año se realizó un workshop en el que se presento a las autoridades y a los bibliotecarios el resultado. Este evento ayudó a demostrar la facilidad de utilizar Koha y la gran cantidad de características que la nueva versión 3.0 (ya estable en ese momento) proveía. Fue muy importante el testimonio de los bibliotecarios y usuarios en general de esa primera instalación de prueba.

El éxito de esta prueba facilitó la decisión de la UNC de iniciar una migración y un proceso de capacitación completos. La El tiempo de migración se estimó en un año y medio. El equipo original fue contratado por la UNC con el agregado de un bibliotecario extra y otro profesional IT para soporte y mejoras.

Una vez definido, en Noviembre de 2008, el órden de las migraciones, comenzo el proceso que finalizó en Abril de 2010: todas las bibliotecas propuestas migradas y en funcionamiento.

Puesto en números:

  • 23 bibliotecas migradas
  • 100+ bases de datos CDS/ISIS migradas a MARC21
  • 3 bases de datos propias en SQL/xBase migradas a MARC21
  • 2 migraciones de Koha 2.2.x a Koha 3
  • 360,000+ registros bibliograficos importados
  • 150,000+ registros de autoridades importados
  • 48,000+ usuarios migrados
  • 100+ bibliotecarios entrenados
  • 5 miembros del equipo de migración

Hemos organizado nuestra primera jornada de taller para bibliotecarios para discutir y compartir sus experiencias. También se creo una lista de correo interna bastante activa para ellos.

Por el lado del software, la UNC corre sus instancias de Koha sobre Ubuntu/Linux. Mayormente Ubuntu 8.04 LTS y algunos Ubuntu 9.10. La mayoría de nuestras instancias corren Koha 3.0.3 con algunas excepciones corriendo versiones de la rama Koha 3.1.x.

Actualmente estamos estamos haciendo (exitosas) pruebas de correr sobre Ubuntu 10.04 LTS usando Koha 3.0.6. Nuestro objetivo tener una base común en el corto plazo.

Por el lado del hardware tenemos una fauna bastante rica. Esto incluye (principalmente) máquinas virtuales Xen sobre openSuSe, máquinas virtuales VirtualBox sobre Debain y Solaris, y algunas máquinas dedicadas. Hemos hecho pequeñas adaptaciones al código de porque nuestro esfuerzo estuvo focalizado en la migración a MARC21 y buscamos estar siempre en la rama oficial.

El único agregado que hicimos fue una pantalla para manejar las suspensiones de los usuarios, porque en general no se cobra por retrasos en las devoluciones, y algunos reportes personalizados que incluyen gráficos de los resultados. Participamos activamente en la traducción de Koha, que es una gran necesidad para este proyecto, traduciendo también las hojas de trabajo bibliográficas y de autoridades.

Ha sido una gran experiencia para todos nosotros, bibliotecarios, usuarios, equipos de migración y soporte, con altos y bajos, mecanismos de recuperación de fallas probados del modo difícil, pero fundamentalmente, mostrando la calidad que se puede encontrar en una solución basada en Open Source.

Todo este fue posible gracias a Uds., la comunidad de Koha, con sus grandes desarrolladores detrás de ella.

A la comunidad de Koha, nuestro mas respetuoso agradecimiento.

Equipo de migración y soporte de Koha en la UNC

Dear Koha community,

We are proud to announce the completion of the program to migrate existing libraries at the National University of Córdoba (UNC) to MARC and Koha.

It has been a long way to this end and we want to share with you part our experience, but since this is a newsletter we'll try to summarize.

By 2007, a new elected government took charge of the university and stimulated a renewed discussion on the community of librarians on the need of a unified software framework. The discussion took a long time in which some proprietary solutions were considered but many thought that we needed to try an open source solution to evade being vendor-locked.

To test the viability of a Koha based solution, at the beginning of 2008 the Faculty of Mathematics, Physics and Astronomy (FaMAF) appointed a librarian and two IT staff to begin the migration of their own library, whose staff volunteered to the task. This team needed to learn and master the installation process and the migration of data. In this case was installed Koha 3.0beta1, and the original data was on CDS/ISIS.

By June 2008 this library was fully functional and by September 2008 it was presented to the librarians and authorities on a workshop. The event helped to show the ease of use and a wide range of functionalities of the new Koha 3.0 (stable by that time), with the testimony of the librarians and users of the test install.

This success story set the decision of the University to begin a full scale migration and training process. The whole process was estimated in 1 and a half year. The original team was hired by the University with the addition of another librarian. Also, the University appointed one IT staff for support and installation issues.

By November 2008, having worked out the order of installations, the process began.

By late April 2010, the team reached its goal: all the proposed libraries were migrated and functional.

To put it in numbers:

  • 23 libraries migrated
  • 100+ CDS/ISIS databases migrated to MARC
  • 3 SQL/xBase custom book databases migrated to MARC
  • 2 Koha 2.2.x to Koha 3 migrations
  • 360,000+ bibliographic records imported to Koha
  • 150,000+ authority records imported to Koha
  • 48,000+ user data migrated to Koha
  • 100+ librarians trained
  • 5 people migration and support team

We have also organized our first librarian workshop to discuss and share their experiences, and have set a very active internal mailing list for our librarians.

On the software side we run our instances on Ubuntu. Mostly Ubuntu 8.04 LTS and a few Ubuntu 9.10. Our install base runs Koha 3.0.3 with a few exceptions running Koha 3.1.x series.

Right now we are doing extensive (and successful) testing on Ubuntu 10.04 LTS and Koha 3.0.5. We aim to unify our install base soon.

On the hardware side we have a rich fauna including (mostly) Xen VirtualMachines on OpenSuse, VirtualBox VirtualMachines on Debian and Solaris, and a few dedicated boxes. We made little adaptations on the codebase because our main effort was on the migration to MARC and always wanted to be on the official trunk.

We only added an extra screen for managing debars, because we don't charge for late returns, and a few custom reports that include fancy graphics. We participate actively on the translation side, a must for our project, doing also the translation of bibliographic and authorities frameworks. It has been a great experience for us all, librarians, patrons, migration and support teams, with ups and downs, crash recovery solutions tested the hard way, but fundamentally showing that an OpenSource solution could work fine.

And all of this was possible because of you, the Koha community and the great developers behind it.

To the Koha Community, our respectfully thanks.

UNC Koha Migration & Support Team