AEM AEM La plataforma de la en el 6 se basa en Apache Jackrabbit Oak.
Apache Jackrabbit Oak es un esfuerzo por implementar un repositorio de contenido jerárquico escalable y de rendimiento para utilizarlo como la base de sitios web modernos de primera clase y otras aplicaciones de contenido exigentes.
AEM Es el sucesor de Jackrabbit 2 y se utiliza por parte de 6 como el backend predeterminado para su repositorio de contenido, CRX.
Oak implementa las JSR-283 (JCR 2.0) Sus principales objetivos de diseño son:
El propósito de la capa de almacenamiento es:
El núcleo de Oak añade varias capas a la capa de almacenamiento:
El objetivo principal del JCR de Oak es transformar la semántica de JCR en operaciones de árbol. También es responsable de:
Además, ahora es posible realizar implementaciones que no sean de Java y parte del concepto JCR de Oak.
La capa de almacenamiento de Oak proporciona una capa de abstracción para el almacenamiento real del contenido.
AEM Actualmente, hay dos implementaciones de almacenamiento disponibles en la versión 6 de: Almacenamiento de tar y Almacenamiento de MongoDB.
El almacenamiento Tar utiliza archivos tar. Almacena el contenido como varios tipos de registros en segmentos más grandes. Los diarios se utilizan para realizar un seguimiento del estado más reciente del repositorio.
Existen varios principios clave de diseño en torno a los cuales se construyó:
El contenido se almacena en segmentos que pueden tener hasta 256 KB. Son inmutables, lo que facilita la caché de los segmentos a los que se accede con frecuencia y la reducción de los errores del sistema que pueden dañar el repositorio.
Cada segmento se identifica con un identificador único (UUID) y contiene un subconjunto continuo del árbol de contenido. Además, los segmentos pueden hacer referencia a otro contenido. Cada segmento mantiene una lista de UUID de otros segmentos a los que se hace referencia.
Los registros relacionados, como un nodo y sus tareas secundarias inmediatas, se almacenan en el mismo segmento. Al hacerlo, la búsqueda en el repositorio se realiza rápidamente y se evitan la mayoría de los errores de caché para los clientes habituales que acceden a más de un nodo relacionado por sesión.
El formato de los registros está optimizado para su tamaño, a fin de reducir los costes de E/S y ajustar el mayor contenido posible en las cachés.
El almacenamiento de MongoDB utiliza MongoDB para el uso compartido y la agrupación en clústeres. El árbol del repositorio se mantiene en una base de datos MongoDB, donde cada nodo es un documento independiente.
Tiene varias particularidades:
Para cada actualización (confirmación) del contenido, se crea una nueva revisión. Una revisión es básicamente una cadena que consta de tres elementos:
Se admiten ramas, lo que permite al cliente almacenar en zona intermedia varios cambios y hacerlos visibles con una sola llamada de combinación.
El almacenamiento MongoDB agrega datos a un documento con cada modificación. Sin embargo, solo elimina datos si se activa explícitamente una limpieza. Los datos antiguos se mueven cuando se alcanza un umbral determinado. Los documentos anteriores solo contienen datos inmutables, lo que significa que solo contienen revisiones confirmadas y combinadas.
Los datos sobre los nodos de clúster activos e inactivos se guardan en la base de datos para facilitar las operaciones de clúster.
AEM Una configuración de clúster típica de la zona de trabajo con almacenamiento MongoDB:
Debido a que Oak es compatible con el estándar JCR 1.0, casi no hay cambios en el nivel de usuario. AEM Sin embargo, hay algunas diferencias notables que debe tener en cuenta al configurar una instalación basada en Oak
AEM Para obtener más información sobre la plataforma de la, consulte también los artículos siguientes: