Verifying minRecordLength impact and binary storage in AEM 6.5
I'm working with AEM 6.5 and looking to optimize performance by configuring the minRecordLength property under org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.
The documentation recommends setting this to 100 to ensure binaries (like DITA files) are saved in the Data Store instead of the Segment Store for better performance.
However, I have a few questions:
How can I verify where the binaries are currently being stored — Segment Store or Data Store — especially for different file types and sizes?
If I don’t see the minRecordLength in the Felix Console (/system/console/configMgr), how do I confirm what value is being used by default?
After setting minRecordLength=100, is there a reliable way (via logs or tools) to confirm that new uploads are being saved in Data Store?
What metrics or logs should I track to evaluate performance improvements (e.g., segment size growth, compaction, GC)?
I’ve uploaded files like small.txt and used scripts:
def assetPath = "/content/dam/test-upload/small.txt"
def originalNodePath = "${assetPath}/jcr:content/renditions/original/jcr:content"
if (!session.nodeExists(originalNodePath)) {
println "❌ Asset or original rendition not found at: ${originalNodePath}"
return
}
def node = session.getNode(originalNodePath)
def binary = node.getProperty("jcr:data").getBinary()
def binaryClass = binary.getClass().getName()
println "📂 Asset: ${assetPath}"
println "🔍 Binary class: ${binaryClass}"
if (binaryClass.contains("Segment")) {
println "📦 Stored in ➤ Segment Store (small file, below minRecordLength)"
} else if (binaryClass.contains("BinaryImpl")) {
println "🗄️️ Stored in ➤ Data Store (file > minRecordLength)"
} else {
println "❓ Unknown binary storage mechanism"
}
Result:
Asset: /content/dam/test-upload/small.txt 🔍 Binary class: org.apache.jackrabbit.oak.plugins.value.jcr.BinaryImpl 🗄️️ Stored in ➤ Data Store (file > minRecordLength)
to inspect the BinaryImpl class, but would appreciate a more complete validation and best practice guidance.
Any advice or script-based approach would be helpful.