Professional Documents
Culture Documents
Apache Jackrabbit Oak is an effort to implement a scalable and performant hierarchical content
repository for use as the foundation of modern world-class web sites and other demanding
content applications.
It is the successor to Jackrabbit 2 and is used by AEM 6 as the default backend for its content
repository, CRX.
Architecture Concept
Storage
Oak Core
Oak JCR
The main objective of the Oak JCR is to transform JCR semantics into tree operations. It is also
responsible for:
Implementing the JCR API
Containing commit hooks that implement JCR constraints
In addition, non-Java implementations are now possible and part of the Oak JCR concept.
Storage overview
The Oak storage layer provides an abstraction layer for the actual storage of the content.
Currently, there are two storage implementations available in AEM6: Tar
Storage and MongoDB Storage.
Tar Storage
The Tar storage uses tar files. It stores the content as various types of records within larger
segments. Journals are used to track the latest state of the repository.
There are several key design principles it was build around:
Immutable Segments
The content is stored in segments that can be up to 256KiB in size. They are immutable, which
makes it easy to cache frequently accessed segments and reduce system errors that may corrupt
the repository.
Each segment is identified by a unique identifier (UUID) and contains a continuous subset of the
content tree. In addition, segments can reference other content. Each segment keeps a list of
UUIDs of other referenced segments.
Locality
Related records like a node and its immediate children are usually stored in the same segment.
This makes searching the repository very fast and avoids most cache misses for typical clients
that access more than one related node per session.
Compactness
The formatting of records is optimized for size to reduce IO costs and to fit as much content in
caches as possible.
Mongo Storage
The MongoDB storage leverages MongoDB for sharding and clustering. The repository tree is
kept in one MongoDB database where each node is a separate document.
It has several particularities:
Revisions
For each update (commit) of the content, a new revision is created. A revision is basically a
string that consists of three elements:
1. A timestamp derived from the system time of the machine it was generated on
2. A counter to distinguish revisions created with the same timestamp
3. The cluster node id where the revision was created
Branches
Branches are supported, which allows client to stage multiple changes and make them visible
with a single merge call.
Previous documents
MongoDB storage adds data to a document with every modification. However, it only deletes
data if a cleanup is explicitly triggered. Old data is moved when a certain threshold is met.
Previous documents only contain immutable data, which means they only contain committed and
merged revisions.
Cluster node metadata
Data about active and inactive cluster nodes is kept in the database in order to facilitate cluster
operations.
Oak does not create indexes automatically. Because of this, custom indexes will need to be
created when necessary.
Unlike Jackrabbit 2 where sessions always reflect the latest state of the repository, with Oak a
session reflects a stable view of the repository from the time the session was acquired. This is
due to the MVCC model on which Oak is based on.
Same name siblings (SNS) are not supported in Oak.
Other Platform Related Documentation
For more information regarding the AEM platform, also check the articles below:
Configuring Node Stores and Data Stores in AEM 6
Oak Queries and Indexing
Storage Elements in AEM 6
AEM with MongoDB
Adobe supports Adobe Experience Manager (AEM) on the platforms as detailed in the following
information in this document.
For any issues that are specifically related to the platform itself, you will need to contact the
platform vendor directly.
Note:
Depending upon the platform on which you install AEM, there could be different sets of requirements for user
management.
Prerequisites
To install Adobe Experience Manager you need at a minimum:
Installed Java Platform, Standard Edition JDK - or other supported Java Virtual Machines
Experience Manager Quickstart file (Standalone JAR or web-application deployment WAR)
You will have to increase these in accordance with your operational expectations. Please see
the Hardware Sizing Guidelines for further information.
Support Levels
This document lists the supported client and server platforms for Adobe Experience Manager.
Adobe provides several levels of support, both for our recommended configurations and for other
configurations.
Recommended Configurations
Adobe recommends these configurations and provides full support as part of the standard
software maintenance agreement.
Unsupported Configurations
Support Level Description
E: Expected to The configuration is expected to work, and there are no reports to the
work contrary.
Z: Not The configuration is not supported. Adobe does not make any statements
supported about whether the configuration works, and does not support it.
Supported Platforms
1. 'File System' includes block storage that is POSIX compliant. This includes network storage
technology. Mind that file system performance might vary and influences the overall
performance. It is recommended to load test AEM in combination with the network/remote file
system.
2. MongoDB Sharding is not supported in AEM.
3. MongoDB Storage Engine WiredTiger is supported only.
Note:
See Deploying Communities for additional information regarding the AEM Communities capability.
Note:
MongoDB is third-party software and is not included in the AEM licensing package. For more information see
the MongoDB licensing policypage.
In order to get the most of your AEM deployment, Adobe recommends licensing the MongoDB Enterprise
version in order to benefit from professional support. See Recommended Deployments for more information.
The license includes a standard replica set, which is composed of one primary and two secondary instances
that can be used for either the author or the publish deployments.
In case you wish to run both author and publish on MongoDB, two separate licenses need to be purchased.
Adobe Customer Care will assist qualifying issues related to the usage of MongoDB with AEM.
For more information, see the MongoDB for Adobe Experience Manager page.
Note:
Supported relational databases as listed above is third-party software and is not included in the AEM licensing
package.
In order to run AEM 6.2 with a supported relational database, it is required that you have a separate support
contract with a database vendor directly. Adobe Customer Care will assist qualifying issues related to the
usage of relational databases with AEM 6.2.
Please note, that all relational databases are currently supported within Level-R on AEM 6.2, which
comes with support criterias and a support program as stated in the Level-R description above.
JBoss EAP 6.2.0 with JBoss Application Server 7.3 Z: Not supported
JBoss EAP 6.1.0 with JBoss Application Server 7.2 Z: Not supported
1. Linux Kernel 2.6 and 3.x includes derivatives from Red Hat distribution, including Red Hat
Enterprise Linux, CentOS, Oracle Linux and Amazon Linux.
2. Please see the section Support for XMP metadata write-back
3. No support for Dynamic Media Imaging. Dynamic Media Video is supported.
4. No support for XFA based adaptive forms, XFA to PDF and/or HTML conversion (Experience
Manager Forms), and AEM Forms add-on features.
5. No support for Advanced Raw file transformation (Experience Manager Assets)
6. Not supported in production environment for AEM Forms.
(1) Web servers built on the basis of Apache httpd source code will have the same level of
support as the version of httpd on which it is based only in the following cases:
The HTTP server was built using only official Apache source distributions, or
The HTTP server was delivered as part of the operating system on which it is running.
Examples: IBM HTTP Server, Oracle HTTP Server
If in doubt, please ask Adobe for confirmation of the support level related to the respective
server product.
Dispatcher is not available for Apache 2.4.x for Windows operating systems.
(2) Adobe will drop support for Apache httpd 2.2 after Dec 2017, and recommends to upgrade to
Apache httpd 2.4. In case you stay with Apache 2.2 beyond Dec 2017, it is recommended to
use a Linux distribution that commits to Apache 2.2 security updates. The latest dispatcher
release of 2017 for Apache 2.2 will still be available for download until end of 2018.
WebDAV Clients
Microsoft Windows 7+
To successfully connect with Microsoft Windows 7+ to an AEM instance that is not secured with
SSL, basic authentication over unsecured network must be enabled in Windows. This requires a
change in the Windows Registry of the WebClient:
1. Locate the registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
2. Add the BasicAuthLevel registry entry to this subkey using a value of 2 or more.
See Microsoft Support KB 841215.
To improve responsivness of the WebDav Client under Windows - see Microsoft Support KB
2445570
Hardware
The following hardware requirements are applicable for both Linux and Windows:
Intel Xeon or AMD Opteron CPU with at least 4 cores
16GB of RAM minimum
Linux
If you are using Dynamic Media on Linux, the following prerequisites need to be met:
RedHat Enterprise 5 or CentOS 5.5 and later with latest fix patches
64-bit Operating System
Swapping disabled (recommended)
SELinux disabled (See note that follows)
Note:
If the locale is set such that LC_CTYPE is not equal to en_US.UTF-8, it will prevent dynamic media from
working. To see what its value is type "locale" at the command prompt. If it not set to that, then set the
LC_CTYPE environment variable to the empty string by typing "export LC_CTYPE=" before running AEM.
Note:
Disabling SELinux: Image Serving does not work with SELinux turned on. This option is enabled by default.
To remedy this issue, edit the /etc/selinux/config file and change the SELinux value from:
SELINUX=enforcing to SELINUX=disabled
Note:
NUMA Architecture: Systems with processors featuring AMD64 and Intel EM64T are typically configured
as non-uniform memory architecture (NUMA) platforms, which means that the kernel constructs multiple
memory nodes at boot-time rather than constructing a single memory node.
The multiple node construct can result in memory exhaustion on one or more of the nodes before other nodes
become exhausted. When memory exhaustion happens the kernel can decide to kill processes (for example, the
Image Server or Platform Server) even though there is available memory.
Therefore, Adobe recommends that if you are running such a system that you turn off NUMA using
the numa=off boot option to avoid the kernel killing these processes.
Note:
Hostname of server must be resolvable: Make sure that the hostname of the server is resolvable to an IP
address. If that is not possible, please add the fully qualified hostname and the IP address to /etc/hosts:
<ip address> <fully qualified hostname>
Windows
Adobe® Acrobat® DC Pro XPS, image formats (BMP, GIF, JPEG, JPG, TIF, TIFF,
PNG, JPF, JPX, JP2, J2K, J2C, JPC), HTML, HTM, DWG,
DXF, and DWF
Microsoft® Office 2013 DOC, DOCX, XLS, XLSX, PPT, PPTX, RTF, and TXT
Microsoft® Office 2010 DOC, DOCX, XLS, XLSX, PPT, PPTX, RTF, and TXT
OpenOffice 3.4 ODT, ODP, ODS, ODG, ODF, SXW, SXI, SXC, SXD, XLS,
XLSX, DOC, DOCX, PPT, PPTX, image formats (BMP,
GIF, JPEG, JPG, TIF, TIFF, PNG, JPF, JPX, JP2, J2K, J2C,
JPC), HTML, HTM, RTF, and TXT
OpenOffice 3.3 ODT, ODP, ODS, ODG, ODF, SXW, SXI, SXC, SXD,
DOC, DOCX, XLS, XLSX, PPT, PPTX, image formats
(BMP, GIF, JPEG, JPG, TIF, TIFF, PNG, JPF, JPX, JP2,
J2K, J2C, JPC), HTML, and HTM