Pregunta/Problema

¿Qué es el Administrador de persistencia Tar y cómo configurarlo?

Respuesta/Resolución

Administrador de persistencia Tar

Puede almacenar el contenido CRX en un Persistence Manager. De forma predeterminada, cuando instala CRX 1.4, el Administrador de persistencia guarda el contenido del repositorio en archivos tar.

Objetivo

El Administrador de persistencia Tar (Tar PM) es un gestor de persistencia basado en disco que utiliza el formato de archivo tar para almacenar contenido y es útil en situaciones en las que se requiere un alto rendimiento en la creación y modificación de datos (ya que el formato Tar es solo accesorio, por lo que las escrituras son muy eficientes).

La agrupación Tar PM permite a CRX compensar los fallos de hardware y software eliminando un único punto de fallo (un servidor) mientras utiliza aplicaciones sin cambios. A diferencia del almacenamiento en clúster basado en un servidor de base de datos (también disponible en CRX), el clúster Tar PM se basa en sistemas de archivos en red.

Tar PM frente a un PM basado en RDBMS

Tanto Tar PM como los PM basados en bases de datos admiten transacciones, cualquier sistema de archivos, y optimización en tiempo de ejecución o en modo de lote. Aunque Tar PM es una nueva tecnología, tiene las siguientes ventajas sobre el uso de un administrador de persistencia basado en una base de datos:

  • Los archivos Tar son solo de tipo accesorio.
  • Los archivos Tar pueden ser copiados fácilmente en línea.
  • Tar es un formato de archivo estándar, accesible a través de herramientas conocidas, como tar, WinZip, etc.
  • Tar es un formato independiente de la plataforma.
  • Bajo coste de propiedad y licencia.
  • Tar PM está específicamente diseñado para los repositorios JCR.
  • Tar PM es más rápido que los administradores de persistencia basados en RDBMS para el caso de uso de JCR.
  • El Tar PM aprovecha la estructura de datos de par clave-valor muy simple del CRX.

Configuración del Tar PM

Las opciones de configuración son:

<PersistenceManager class="com.day.crx.persistence.tar.TarPersistenceManager">
    <param name="maxFileSize" value="256"/>
    <param name="autoOptimizeAt" value="2:00-5:00"/>
    <!-- since 1.4.1 -->
    <param name="bindAddress" value=""/>
    <param name="portList" value=""/>
    <param name="preferredMaster" value="false"/>
    <param name="lockClass" value="com.day.crx.util.NativeFileLock"/>
    <param name="lockTimeout" value="0"/>
    <param name="fileMode" value="rw"/>
    <param name="optimizeSleep" value="1"/>
    <param name="maxIndexBuffer" value="32"/>
</PersistenceManager>
maxFileSize (opcional, de forma predeterminada es 256) Si el archivo de datos actual crece más que este número (en megabytes), se crea un nuevo archivo de datos (esto significa que si la última entrada en un archivo es muy grande, un archivo de datos puede ser mucho más grande, ya que las entradas no se dividen entre los archivos). El tamaño máximo del archivo es de 1024 (1 GB). Los archivos de datos se mantienen abiertos en tiempo de ejecución. Dependiendo de la cantidad de datos almacenados en el Tar PM, este valor debe ser incrementado o el límite de archivos abiertos por proceso debe ser ajustado. Si este valor se cambia cuando ya existen archivos tar, los nuevos archivos tar crecerán hasta alcanzar este tamaño (los archivos existentes no se modifican).
autoOptimizeAt (opcional, de forma predeterminada es 2:00-5:00) Optimizar automáticamente en el momento dado. Cuándo se debe ejecutar la optimización. Ejemplo: 2:00 para optimizar automáticamente cada mañana a las dos. Los archivos de índice también se fusionarán si es necesario. Para desactivar la optimización automática, establezca el valor en "-0" (que en realidad significa “detener la optimización a medianoche”).
bindAddress Si la sincronización entre nodos de clúster debe realizarse a través de una interfaz de red específica. De forma predeterminada, se utilizan todas las interfaces de red. De forma predeterminada: vacío (usa todas las interfaces).
portList La lista de puertos a utilizar en el modo maestro. De forma predeterminada, se utiliza cualquier puerto libre. Cuando se utiliza un cortafuegos, los puertos abiertos deben aparecer en la lista. Se requiere un puerto por cada espacio de trabajo. Se admite una lista de puertos o rangos, por ejemplo: 9100-9110 o 9100-9110,9210-9220. De forma predeterminada: 0 (cualquier puerto).
preferredMaster Solo aplicable en un entorno de agrupación en clúster. Si está habilitado, este nodo de clúster intentará convertirse en el principal incluso si otro nodo de clúster se ha iniciado antes. De forma predeterminada: falso (no habilitado)
lockClass El nombre de la clase a utilizar para el bloqueo. Se admiten com.day.crx.util.NativeFileLock and com.day.crx.util.CooperativeFileLock. Cuando se utiliza un sistema de archivos que no admite el bloqueo de archivos (por ejemplo, algunas versiones antiguas de NFS), se debe utilizar la clase de bloqueo cooperativa. Predeterminado: com.day.crx.util.NativeFileLock
lockTimeout Cuando se utiliza la agrupación en clústeres, el tiempo máximo (en milisegundos) de espera para bloquear los archivos compartidos. Por defecto: 0 para sin límite.
fileMode El modo de archivo cómo abrir los archivos de datos. Las opciones son "rw" (lectura-escritura), "r" (solo-lectura), "rwd" (lectura-escritura, el contenido se escribe sincrónicamente), y "rws" (lectura-escritura, los cambios de contenido y de metadatos se escriben sincrónicamente). Opcionalmente se puede añadir un + para llamar a fsync después de escribir (sin embargo, esto ralentizará mucho la escritura). Predeterminado: "rw" para lectura y escritura.
optimizeSleep (opcional, de forma predeterminada es 1) El número de milisegundos de espera después de optimizar una transacción. Se admite la precisión de punto flotante.
maxIndexBuffer (opcional, de forma predeterminada es 32) Después de una terminación anormal, a lo sumo estos datos (en megabytes) necesitan ser escaneados para volver a crear el índice de entrada tar.

 

Los valores de configuración se leen cuando se inicia el repositorio; eso significa que puede querer reiniciar el repositorio después de cambiar la configuración.Nota: Si cambia la configuración después de haber creado un espacio de trabajo, necesita cambiar los archivos repository.xml y workspace.xml.

Optimización de archivos Tar

Ver Optimización de TarPM

Verificación y corrección de consistencia

El Tar PM puede verificar la coherencia del repositorio y arreglar problemas de coherencia al inicio. Para permitir la verificación de coherencia y solucionar problemas automáticamente, establezca las siguientes opciones en repository.xml y workspace.xml, y reinicie CRX:

<param name="consistencyCheck" value="true"/>
<param name="consistencyFix" value="true"/>

Para solucionar problemas de consistencia, también debe estar activada la configuración de verificación de consistencia.

Una vez finalizada la comprobación de consistencia, desactive los ajustes correspondientes; de lo contrario, la comprobación de consistencia siempre se ejecutará al arrancar el CRX.

Si los archivos Tar se hacen grandes

Si algunos archivos data*.tar son muy grandes, hay grandes transacciones. Las grandes transacciones son un problema (en cualquier caso, no solo para el Tar PM, sino también para la memoria principal y otros subsistemas). Puede analizar lo que hay en un archivo data*.tar usando el archivo jsp en el archivo adjunto.

Migración de un entorno regular a un entorno de clústeres

La forma más sencilla de migrar a un entorno agrupado es exportar los datos, cambiar la configuración y, a continuación, importarlos.

Migración de un entorno agrupado a un entorno normal

La forma más sencilla de migrar a un entorno normal es exportar los datos, cambiar la configuración y, a continuación, importar los datos.

Versiones relacionadas

CRX 1.4.1 y 1.4.2

Descargar

* showNodes_CRX22.zip
versión para CRX 2.x