As an AEM repository grows due to accumulated assets and binary files, regular compaction alone may not be sufficient. Separating NodeStore and BlobStore components can improve performance and reduce memory consumption.
Consider splitting your Apache OAK repository if:
- Repository size grows unexpectedly fast due to numerous assets
- You need to improve local repository speed and decrease memory consumption
Implementation Steps (AEM 6.1 on Windows)
Prerequisites:
- Stop the Adobe AEM instance
- Back up and compact the OAK repository
1. Create directories
Create separate directories for SegmentStore and BlobStore:
crx-quickstart\repository_newC:\dev\aem\blobstore
2. Clone the repository with crx2oak
1
2
3
4
java -jar crx2oak-1.4.6-standalone.jar --copy-binaries
--src-datastore=crx-quickstart/repository/segmentstore
--datastore=c:\\dev\\aem\\author\\blobstore
crx-quickstart/repository crx-quickstart/repository_new -mmap
3. Reorganize directories
- Create
crx-quickstart\install - Delete old
crx-quickstart\repository - Rename
crx-quickstart\repository_newtocrx-quickstart\repository
4. Create configuration files
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.cfg:
1
customBlobStore=true
org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.cfg:
1
2
3
path=C:\\dev\\aem\\author\\blobstore
cacheSize=...
minRecordLength=...
5. Restart and verify
Restart the instance and verify that “Custom BlobStore” is enabled in the configuration manager.