CacheSize 250 - Reading 100000 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 1 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5858 All paths: 123545 Oak-Segment-Tar 1 1508 1508 1574 1636 1636 4 Oak-Segment-Tar 10 3013 3042 3233 3377 3400 20 Oak-Segment-Tar 20 6829 6851 7174 7378 7388 20 Oak-Segment-Tar 50 14826 15269 15565 15820 15869 50 Profiler: top 5 stack trace(s) of of 38237 ms of 5590 thread dumps: 5590/65257 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3833/65257 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3520/65257 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2175/65257 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2056/65257 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 26%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.plugins.tree.impl 13%: app//org.apache.jackrabbit.oak.cache 10%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 250 - Reading 100000 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 10 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6058 All paths: 123545 Oak-Segment-Tar 1 1385 1385 1471 1669 1669 4 Oak-Segment-Tar 10 3347 3350 3401 3462 3468 20 Oak-Segment-Tar 20 6985 6993 7198 7253 7269 20 Oak-Segment-Tar 50 14826 15662 16084 16255 16347 50 Profiler: top 5 stack trace(s) of of 38046 ms of 5532 thread dumps: 5532/67682 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4181/67682 (6%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3913/67682 (5%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2183/67682 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2171/67682 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 44%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.core . CacheSize 250 - Reading 100000 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 100 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6579 All paths: 123545 Oak-Segment-Tar 1 1513 1513 1531 1572 1572 4 Oak-Segment-Tar 10 3190 3203 3316 3345 3347 20 Oak-Segment-Tar 20 7189 7240 7321 7393 7412 20 Oak-Segment-Tar 50 14146 14971 15427 15653 15755 50 Profiler: top 5 stack trace(s) of of 38239 ms of 5740 thread dumps: 5740/67877 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2234/67877 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2096/67877 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2094/67877 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2053/67877 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 250 - Reading 100000 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 1000 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6162 All paths: 123545 Oak-Segment-Tar 1 1519 1519 1599 1745 1745 4 Oak-Segment-Tar 10 3387 3404 3611 3881 3894 20 Oak-Segment-Tar 20 6688 6756 6866 6956 6999 20 Oak-Segment-Tar 50 15157 15693 16181 16372 16440 50 Profiler: top 5 stack trace(s) of of 39185 ms of 5871 thread dumps: 5871/70646 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2335/70646 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2204/70646 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2060/70646 (2%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1877/70646 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 22%: app//org.apache.jackrabbit.oak.segment 19%: app//org.apache.jackrabbit.oak.segment.file 17%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 250 - Reading 100000 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 1 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6014 All paths: 123545 Oak-Segment-Tar 1 1645 1645 1680 1866 1866 3 Oak-Segment-Tar 10 3124 3129 3185 3244 3251 20 Oak-Segment-Tar 20 6470 6521 6829 6889 6889 20 Oak-Segment-Tar 50 14649 15112 15690 15862 15936 50 Profiler: top 5 stack trace(s) of of 36278 ms of 5217 thread dumps: 5217/66510 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3256/66510 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2926/66510 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2183/66510 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2158/66510 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.cache 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 250 - Reading 100000 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 10 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6251 All paths: 123545 Oak-Segment-Tar 1 1443 1443 1462 1512 1512 4 Oak-Segment-Tar 10 3216 3226 3343 3384 3386 20 Oak-Segment-Tar 20 6334 6488 6726 6824 6839 20 Oak-Segment-Tar 50 14622 15032 15583 15783 15874 50 Profiler: top 5 stack trace(s) of of 37495 ms of 5610 thread dumps: 5610/67348 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2121/67348 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2095/67348 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2092/67348 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2054/67348 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 19%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 250 - Reading 100000 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 100 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6159 All paths: 123545 Oak-Segment-Tar 1 1499 1499 1587 1754 1754 4 Oak-Segment-Tar 10 3093 3143 3297 3486 3487 20 Oak-Segment-Tar 20 6480 6838 7080 7155 7168 20 Oak-Segment-Tar 50 14306 15205 15685 15889 15930 50 Profiler: top 5 stack trace(s) of of 38044 ms of 5739 thread dumps: 5739/68887 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3327/68887 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2897/68887 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2326/68887 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2206/68887 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 10%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 250 - Reading 100000 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 1000 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6719 All paths: 123545 Oak-Segment-Tar 1 1661 1661 1662 1838 1838 3 Oak-Segment-Tar 10 3110 3170 3216 3246 3268 20 Oak-Segment-Tar 20 6476 6602 6782 6904 6913 20 Oak-Segment-Tar 50 14574 15383 15967 16162 16231 50 Profiler: top 5 stack trace(s) of of 36663 ms of 5224 thread dumps: 5224/66361 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2302/66361 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2263/66361 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1512/66361 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1435/66361 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 24%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 250 - Reading 100000 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 1 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6193 All paths: 123545 Oak-Segment-Tar 1 1485 1485 1507 1555 1555 4 Oak-Segment-Tar 10 3212 3215 3421 3555 3577 20 Oak-Segment-Tar 20 6763 6799 7108 7170 7193 20 Oak-Segment-Tar 50 14935 15244 15687 15956 16027 50 Profiler: top 5 stack trace(s) of of 38371 ms of 5717 thread dumps: 5717/68510 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2664/68510 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2211/68510 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2209/68510 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2146/68510 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 38%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.core 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 250 - Reading 100000 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 10 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6017 All paths: 123545 Oak-Segment-Tar 1 1523 1523 1643 1686 1686 4 Oak-Segment-Tar 10 3261 3263 3338 3397 3400 20 Oak-Segment-Tar 20 6627 6645 6816 6856 6870 20 Oak-Segment-Tar 50 15437 15504 16091 16316 16378 50 Profiler: top 5 stack trace(s) of of 38966 ms of 5919 thread dumps: 5919/70482 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3353/70482 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3067/70482 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2211/70482 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2160/70482 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 250 - Reading 100000 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 100 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6531 All paths: 123545 Oak-Segment-Tar 1 1650 1650 1681 1847 1847 3 Oak-Segment-Tar 10 3331 3377 3498 3661 3669 20 Oak-Segment-Tar 20 6664 6714 6827 6950 6957 20 Oak-Segment-Tar 50 14912 15205 15803 16004 16042 50 Profiler: top 5 stack trace(s) of of 37588 ms of 5478 thread dumps: 5478/68527 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4140/68527 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3933/68527 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2287/68527 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2162/68527 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.core 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 250 - Reading 100000 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 1000 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7271 All paths: 123545 Oak-Segment-Tar 1 1449 1449 1544 1609 1609 4 Oak-Segment-Tar 10 3195 3224 3472 3687 3704 20 Oak-Segment-Tar 20 6983 7020 7126 7219 7228 20 Oak-Segment-Tar 50 14375 15356 15892 16063 16188 50 Profiler: top 5 stack trace(s) of of 38638 ms of 5741 thread dumps: 5741/70270 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4122/70270 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3948/70270 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2387/70270 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2343/70270 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.core . CacheSize 250 - Reading 100000 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 1 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6089 All paths: 123545 Oak-Segment-Tar 1 1689 1689 1833 1889 1889 3 Oak-Segment-Tar 10 4055 4081 4220 4310 4323 20 Oak-Segment-Tar 20 8341 8411 8540 8649 8678 20 Oak-Segment-Tar 50 17521 18693 19254 19493 19552 50 Profiler: top 5 stack trace(s) of of 44605 ms of 6351 thread dumps: 6351/86089 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4891/86089 (5%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4593/86089 (5%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3236/86089 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3062/86089 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 51%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.commons 4%: app//org.apache.jackrabbit.oak.core 4%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 250 - Reading 100000 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 10 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6527 All paths: 123545 Oak-Segment-Tar 1 2445 2445 2585 2724 2724 2 Oak-Segment-Tar 10 5301 5305 5356 5400 5401 10 Oak-Segment-Tar 20 10311 10453 10698 10774 10790 20 Oak-Segment-Tar 50 21285 22729 23761 24156 24345 50 Profiler: top 5 stack trace(s) of of 49044 ms of 6441 thread dumps: 7824/98746 (7%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 6441/98746 (6%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4959/98746 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1734/98746 (1%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1695/98746 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 34%: app//org.apache.jackrabbit.oak.security.authorization.permission 33%: app//org.apache.jackrabbit.oak.segment 7%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.core 3%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 250 - Reading 100000 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 100 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6222 All paths: 123545 Oak-Segment-Tar 1 7015 7015 7015 7015 7015 1 Oak-Segment-Tar 10 12742 12742 12806 12905 12909 10 Oak-Segment-Tar 20 26144 26314 26785 26962 27006 20 Oak-Segment-Tar 50 59417 61176 63314 63984 64230 50 Profiler: top 5 stack trace(s) of of 118622 ms of 13672 thread dumps: 30771/239283 (12%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 29004/239283 (12%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 18400/239283 (7%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 17931/239283 (7%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 13672/239283 (5%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) summary: 71%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.segment 5%: app//org.apache.jackrabbit.oak.commons 2%: app//org.apache.jackrabbit.oak.core . CacheSize 250 - Reading 100000 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 1000 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6151 All paths: 123545 Oak-Segment-Tar 1 40533 40533 40533 40533 40533 1 Oak-Segment-Tar 10 98921 98927 99419 99757 99764 10 Oak-Segment-Tar 20 221363 227921 230495 231318 232039 20 Oak-Segment-Tar 50 317535 322533 327964 349956 351001 50 Profiler: top 5 stack trace(s) of of 763663 ms of 84438 thread dumps: 440771/1516537 (29%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 436584/1516537 (28%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 100095/1516537 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:524) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.exists(SecureNodeBuilder.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.exists(AbstractTree.java:225) at app//org.apache.jackrabbit.oak.core.MutableTree.exists(MutableTree.java:120) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:444) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 97069/1516537 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:524) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.exists(SecureNodeBuilder.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.exists(AbstractTree.java:225) at app//org.apache.jackrabbit.oak.core.MutableTree.exists(MutableTree.java:120) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:444) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 84438/1516537 (5%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) summary: 88%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.commons 2%: app//org.apache.jackrabbit.oak.segment . CacheSize 250 - Reading 100000 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 1 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6371 All paths: 123545 Oak-Segment-Tar 1 1903 1903 2084 2086 2086 3 Oak-Segment-Tar 10 4610 4654 4880 5000 5015 20 Oak-Segment-Tar 20 9719 9768 10032 10098 10141 20 Oak-Segment-Tar 50 19499 21083 21747 22151 22168 50 Profiler: top 5 stack trace(s) of of 50929 ms of 6977 thread dumps: 6977/94873 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4670/94873 (4%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4428/94873 (4%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1981/94873 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1568/94873 (1%): at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:287) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 51%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: app//org.apache.jackrabbit.oak.commons 5%: app//org.apache.jackrabbit.oak.core 5%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 250 - Reading 100000 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 10 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6530 All paths: 123545 Oak-Segment-Tar 1 2832 2832 2888 2944 2944 2 Oak-Segment-Tar 10 6936 6938 7020 7067 7068 10 Oak-Segment-Tar 20 13826 13831 14030 14101 14156 20 Oak-Segment-Tar 50 28215 29236 30781 31280 31455 50 Profiler: top 5 stack trace(s) of of 61752 ms of 7058 thread dumps: 9905/107366 (9%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 7058/107366 (6%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4972/107366 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2135/107366 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:524) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.exists(SecureNodeBuilder.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.exists(AbstractTree.java:225) at app//org.apache.jackrabbit.oak.core.MutableTree.exists(MutableTree.java:120) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:444) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2068/107366 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.rememberNotAccessControlled(PrincipalPermissionEntries.java:97) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:73) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 37%: app//org.apache.jackrabbit.oak.security.authorization.permission 18%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.segment.file 9%: app//org.apache.jackrabbit.oak.commons 3%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 250 - Reading 100000 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 100 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6426 All paths: 123545 Oak-Segment-Tar 1 15416 15416 15416 15416 15416 1 Oak-Segment-Tar 10 34354 34376 34739 35045 35049 10 Oak-Segment-Tar 20 65941 66131 66620 66864 66977 20 Oak-Segment-Tar 50 185785 189877 192511 193491 193878 50 Profiler: top 5 stack trace(s) of of 327454 ms of 27743 thread dumps: 86563/469080 (18%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 60841/469080 (12%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 27743/469080 (5%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 25334/469080 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 20749/469080 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.rememberNotAccessControlled(PrincipalPermissionEntries.java:97) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:73) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 71%: app//org.apache.jackrabbit.oak.security.authorization.permission 16%: app//org.apache.jackrabbit.oak.segment 6%: app//org.apache.jackrabbit.oak.commons . CacheSize 250 - Reading 100000 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 1000 --cache 250 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5691 All paths: 123545 Oak-Segment-Tar 1 76080 76080 76080 76080 76080 1 Oak-Segment-Tar 10 230561 230569 233344 234225 234227 10 Oak-Segment-Tar 20 508594 519680 531473 534785 535132 20 Oak-Segment-Tar 50 1069901 1081858 1092565 1097946 1098606 50 Profiler: top 5 stack trace(s) of of 2018818 ms of 175838 thread dumps: 872800/3478793 (25%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 855017/3478793 (24%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 254110/3478793 (7%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 244168/3478793 (7%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 179354/3478793 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:524) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.exists(SecureNodeBuilder.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.exists(AbstractTree.java:225) at app//org.apache.jackrabbit.oak.core.MutableTree.exists(MutableTree.java:120) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:444) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 91%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.commons . CacheSize 1000 - Reading 100000 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 1 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5903 All paths: 123545 Oak-Segment-Tar 1 1363 1363 1372 1522 1522 4 Oak-Segment-Tar 10 3129 3142 3329 3476 3491 20 Oak-Segment-Tar 20 6773 6805 7029 7131 7147 20 Oak-Segment-Tar 50 15453 15784 16357 16592 16707 50 Profiler: top 5 stack trace(s) of of 37853 ms of 4827 thread dumps: 4827/62847 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2084/62847 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2046/62847 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2014/62847 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2012/62847 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 20%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 1000 - Reading 100000 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 10 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5676 All paths: 123545 Oak-Segment-Tar 1 1358 1358 1428 1467 1467 4 Oak-Segment-Tar 10 2991 3025 3221 3365 3369 20 Oak-Segment-Tar 20 6754 6841 6965 7082 7104 20 Oak-Segment-Tar 50 14336 14841 15651 15960 16025 50 Profiler: top 5 stack trace(s) of of 37021 ms of 4738 thread dumps: 4738/60276 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3725/60276 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3605/60276 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2132/60276 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1985/60276 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 1000 - Reading 100000 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 100 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5836 All paths: 123545 Oak-Segment-Tar 1 1391 1391 1409 1415 1415 4 Oak-Segment-Tar 10 3199 3215 3336 3438 3440 20 Oak-Segment-Tar 20 6821 6842 6999 7110 7136 20 Oak-Segment-Tar 50 14949 15599 16177 16378 16469 50 Profiler: top 5 stack trace(s) of of 37760 ms of 4872 thread dumps: 4872/61589 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2056/61589 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2000/61589 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1983/61589 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1947/61589 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 24%: app//org.apache.jackrabbit.oak.segment 22%: app//org.apache.jackrabbit.oak.segment.file 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 1000 - Reading 100000 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 1000 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6024 All paths: 123545 Oak-Segment-Tar 1 1338 1338 1354 1504 1504 4 Oak-Segment-Tar 10 2950 2957 3116 3227 3240 20 Oak-Segment-Tar 20 6395 6417 6581 6686 6714 20 Oak-Segment-Tar 50 13293 14326 15125 15397 15461 50 Profiler: top 5 stack trace(s) of of 35759 ms of 4714 thread dumps: 4714/61366 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2462/61366 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2211/61366 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2210/61366 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1974/61366 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 38%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 12%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.core . CacheSize 1000 - Reading 100000 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 1 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6192 All paths: 123545 Oak-Segment-Tar 1 1382 1382 1398 1456 1456 4 Oak-Segment-Tar 10 2946 2968 3129 3187 3210 20 Oak-Segment-Tar 20 6470 6504 6677 6792 6794 20 Oak-Segment-Tar 50 13995 14465 15167 15450 15526 50 Profiler: top 5 stack trace(s) of of 36073 ms of 4722 thread dumps: 4722/59128 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2083/59128 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1861/59128 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1739/59128 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1729/59128 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 25%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100000 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 10 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5543 All paths: 123545 Oak-Segment-Tar 1 1374 1374 1427 1490 1490 4 Oak-Segment-Tar 10 3016 3037 3100 3135 3143 20 Oak-Segment-Tar 20 6247 6293 6454 6564 6593 20 Oak-Segment-Tar 50 13322 14333 15084 15358 15482 50 Profiler: top 5 stack trace(s) of of 35661 ms of 4780 thread dumps: 4780/61340 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2984/61340 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2740/61340 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2067/61340 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1951/61340 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.core . CacheSize 1000 - Reading 100000 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 100 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5695 All paths: 123545 Oak-Segment-Tar 1 1362 1362 1428 1668 1668 4 Oak-Segment-Tar 10 3697 3721 3810 3926 3937 20 Oak-Segment-Tar 20 7604 7641 7854 7971 7987 20 Oak-Segment-Tar 50 15548 16386 17121 17335 17382 50 Profiler: top 5 stack trace(s) of of 41245 ms of 5353 thread dumps: 5353/66569 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3399/66569 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2919/66569 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2175/66569 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2056/66569 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 27%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.core . CacheSize 1000 - Reading 100000 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 1000 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 9039 All paths: 123545 Oak-Segment-Tar 1 1882 1882 1940 2265 2265 3 Oak-Segment-Tar 10 3972 4043 4553 4969 4987 20 Oak-Segment-Tar 20 7088 7388 7670 7865 7894 20 Oak-Segment-Tar 50 14646 15354 16457 17105 17201 50 Profiler: top 5 stack trace(s) of of 43013 ms of 5363 thread dumps: 5363/63277 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3781/63277 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3384/63277 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2130/63277 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2011/63277 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 28%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 1000 - Reading 100000 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 1 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8007 All paths: 123545 Oak-Segment-Tar 1 2075 2075 2356 2493 2493 3 Oak-Segment-Tar 10 4398 4447 4599 4827 4861 20 Oak-Segment-Tar 20 7902 8317 8665 8772 8820 20 Oak-Segment-Tar 50 15465 16975 17835 18211 18338 50 Profiler: top 5 stack trace(s) of of 46013 ms of 5728 thread dumps: 5728/67153 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3924/67153 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3802/67153 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2270/67153 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2177/67153 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 10%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 1000 - Reading 100000 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 10 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8525 All paths: 123545 Oak-Segment-Tar 1 2103 2103 2259 2282 2282 3 Oak-Segment-Tar 10 4417 4454 4698 4921 4954 20 Oak-Segment-Tar 20 7395 7429 7576 7712 7723 20 Oak-Segment-Tar 50 15183 15920 16422 16683 16800 50 Profiler: top 5 stack trace(s) of of 43675 ms of 5700 thread dumps: 5700/65146 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2578/65146 (3%): at app//org.apache.jackrabbit.oak.segment.Segment.dereferenceSegmentId(Segment.java:445) at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:428) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2213/65146 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2148/65146 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2104/65146 (3%): at app//org.apache.jackrabbit.oak.segment.Segment.dereferenceSegmentId(Segment.java:445) at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:428) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 41%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.core 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 1000 - Reading 100000 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 100 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8791 All paths: 123545 Oak-Segment-Tar 1 2633 2633 2705 2776 2776 2 Oak-Segment-Tar 10 4031 4055 4227 4443 4460 20 Oak-Segment-Tar 20 7528 7654 7836 7924 7961 20 Oak-Segment-Tar 50 15370 16314 16913 17122 17214 50 Profiler: top 5 stack trace(s) of of 41523 ms of 5363 thread dumps: 5363/69082 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2316/69082 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2255/69082 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2252/69082 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2147/69082 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.segment.file 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 1000 - Reading 100000 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 1000 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8949 All paths: 123545 Oak-Segment-Tar 1 1991 1991 2110 2599 2599 3 Oak-Segment-Tar 10 3487 3511 3962 4431 4457 20 Oak-Segment-Tar 20 6754 6889 7146 7257 7272 20 Oak-Segment-Tar 50 16220 17082 17685 17881 17921 50 Profiler: top 5 stack trace(s) of of 42409 ms of 5651 thread dumps: 5651/66787 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3855/66787 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3650/66787 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2174/66787 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2072/66787 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 28%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 1000 - Reading 100000 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 1 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7981 All paths: 123545 Oak-Segment-Tar 1 2179 2179 2223 2512 2512 3 Oak-Segment-Tar 10 5183 5188 5296 5389 5395 10 Oak-Segment-Tar 20 6850 7331 7640 7826 7828 20 Oak-Segment-Tar 50 16111 16420 16919 17144 17255 50 Profiler: top 5 stack trace(s) of of 40864 ms of 5299 thread dumps: 5299/62849 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2530/62849 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2518/62849 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2438/62849 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2188/62849 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 43%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.core . CacheSize 1000 - Reading 100000 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 10 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 9694 All paths: 123545 Oak-Segment-Tar 1 3257 3257 3763 4269 4269 2 Oak-Segment-Tar 10 7670 7671 7756 7829 7829 10 Oak-Segment-Tar 20 12472 12674 13123 13214 13221 20 Oak-Segment-Tar 50 25044 25850 26885 27307 27437 50 Profiler: top 5 stack trace(s) of of 60719 ms of 6717 thread dumps: 7474/92571 (8%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 6717/92571 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4454/92571 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2360/92571 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2025/92571 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 36%: app//org.apache.jackrabbit.oak.segment 31%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.core 4%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100000 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 100 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7559 All paths: 123545 Oak-Segment-Tar 1 6234 6234 6234 6234 6234 1 Oak-Segment-Tar 10 11409 11410 11531 11698 11706 10 Oak-Segment-Tar 20 22293 22408 23442 23699 23709 20 Oak-Segment-Tar 50 48010 48874 50511 51545 51617 50 Profiler: top 5 stack trace(s) of of 100418 ms of 10755 thread dumps: 21038/176900 (11%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 19306/176900 (10%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 12233/176900 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 12180/176900 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 10755/176900 (6%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) summary: 64%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.segment 6%: app//org.apache.jackrabbit.oak.commons 3%: app//org.apache.jackrabbit.oak.core 3%: app//org.apache.jackrabbit.oak.cache . CacheSize 1000 - Reading 100000 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 1000 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 9064 All paths: 123545 Oak-Segment-Tar 1 69208 69208 69208 69208 69208 1 Oak-Segment-Tar 10 132884 132893 134093 135234 135273 10 Oak-Segment-Tar 20 273443 274265 277069 278238 278733 20 Oak-Segment-Tar 50 477707 483838 503033 516629 519520 50 Profiler: top 5 stack trace(s) of of 1072525 ms of 105601 thread dumps: 288435/1808338 (15%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 285810/1808338 (15%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 213055/1808338 (11%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 211818/1808338 (11%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 105601/1808338 (5%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) summary: 90%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.commons 2%: app//org.apache.jackrabbit.oak.segment . CacheSize 1000 - Reading 100000 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 1 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8916 All paths: 123545 Oak-Segment-Tar 1 2106 2106 2176 2207 2207 3 Oak-Segment-Tar 10 6504 6505 6556 6677 6688 10 Oak-Segment-Tar 20 12920 12931 13152 13234 13305 20 Oak-Segment-Tar 50 20239 22241 23361 23725 23781 50 Profiler: top 5 stack trace(s) of of 53003 ms of 6023 thread dumps: 6023/71324 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2632/71324 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2426/71324 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1739/71324 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1650/71324 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 38%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.core . CacheSize 1000 - Reading 100000 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 10 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6652 All paths: 123545 Oak-Segment-Tar 1 3054 3054 3297 3540 3540 2 Oak-Segment-Tar 10 8002 8003 8174 8262 8267 10 Oak-Segment-Tar 20 15392 15607 15987 16052 16107 20 Oak-Segment-Tar 50 30112 31474 33007 33586 33743 50 Profiler: top 5 stack trace(s) of of 68822 ms of 7397 thread dumps: 7397/100268 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 7005/100268 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3277/100268 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2827/100268 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2681/100268 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 33%: app//org.apache.jackrabbit.oak.security.authorization.permission 31%: app//org.apache.jackrabbit.oak.segment 8%: app//org.apache.jackrabbit.oak.cache 7%: app//org.apache.jackrabbit.oak.commons 5%: app//org.apache.jackrabbit.oak.core . CacheSize 1000 - Reading 100000 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 100 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7884 All paths: 123545 Oak-Segment-Tar 1 22628 22628 22628 22628 22628 1 Oak-Segment-Tar 10 56601 56608 56999 57773 57806 10 Oak-Segment-Tar 20 98384 98989 101588 102294 102628 20 Oak-Segment-Tar 50 239133 242924 247310 248884 249217 50 Profiler: top 5 stack trace(s) of of 456248 ms of 36693 thread dumps: 105260/600270 (17%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 96332/600270 (16%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 36693/600270 (6%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 36264/600270 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 31143/600270 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 71%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.segment 6%: app//org.apache.jackrabbit.oak.commons 5%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100000 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 1000 --cache 1000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8369 All paths: 123545 Oak-Segment-Tar 1 52774 52774 52774 52774 52774 1 Oak-Segment-Tar 10 178034 178071 179273 180069 180114 10 Oak-Segment-Tar 20 343411 344028 351484 353494 353909 20 Oak-Segment-Tar 50 676465 681495 691999 699029 700316 50 Profiler: top 5 stack trace(s) of of 1344468 ms of 123759 thread dumps: 474996/2380234 (19%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 454640/2380234 (19%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 205343/2380234 (8%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 204863/2380234 (8%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 161157/2380234 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:524) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.exists(SecureNodeBuilder.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.exists(AbstractTree.java:225) at app//org.apache.jackrabbit.oak.core.MutableTree.exists(MutableTree.java:120) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:444) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 91%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.commons . CacheSize 5000 - Reading 100000 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 1 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6430 All paths: 123545 Oak-Segment-Tar 1 1507 1507 1564 1601 1601 4 Oak-Segment-Tar 10 3172 3193 3326 3478 3498 20 Oak-Segment-Tar 20 6524 6793 6871 6939 6950 20 Oak-Segment-Tar 50 15479 15935 16383 16537 16647 50 Profiler: top 5 stack trace(s) of of 38264 ms of 5589 thread dumps: 5589/69283 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4407/69283 (6%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3965/69283 (5%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2211/69283 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2150/69283 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 44%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.core . CacheSize 5000 - Reading 100000 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 10 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6079 All paths: 123545 Oak-Segment-Tar 1 1457 1457 1561 1654 1654 4 Oak-Segment-Tar 10 3298 3326 3372 3436 3438 20 Oak-Segment-Tar 20 7141 7236 7379 7448 7454 20 Oak-Segment-Tar 50 14985 15286 15994 16184 16299 50 Profiler: top 5 stack trace(s) of of 38615 ms of 5826 thread dumps: 5826/72112 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2411/72112 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2265/72112 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2219/72112 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2208/72112 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 25%: app//org.apache.jackrabbit.oak.segment 19%: app//org.apache.jackrabbit.oak.segment.file 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 5000 - Reading 100000 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 100 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5699 All paths: 123545 Oak-Segment-Tar 1 1394 1394 1424 1685 1685 4 Oak-Segment-Tar 10 3191 3196 3257 3310 3317 20 Oak-Segment-Tar 20 6867 7004 7096 7179 7188 20 Oak-Segment-Tar 50 14860 15526 15976 16207 16260 50 Profiler: top 5 stack trace(s) of of 37922 ms of 5671 thread dumps: 5671/71292 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2970/71292 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2777/71292 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2356/71292 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2354/71292 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 45%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.core 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 5000 - Reading 100000 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 1000 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5976 All paths: 123545 Oak-Segment-Tar 1 1484 1484 1551 1726 1726 4 Oak-Segment-Tar 10 3139 3153 3272 3385 3402 20 Oak-Segment-Tar 20 6939 7040 7279 7372 7396 20 Oak-Segment-Tar 50 15797 16255 16719 16919 16984 50 Profiler: top 5 stack trace(s) of of 39183 ms of 5707 thread dumps: 5707/69907 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4464/69907 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3866/69907 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2345/69907 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2266/69907 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 5000 - Reading 100000 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 1 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6260 All paths: 123545 Oak-Segment-Tar 1 1468 1468 1546 1601 1601 4 Oak-Segment-Tar 10 3340 3345 3661 3990 4011 20 Oak-Segment-Tar 20 6932 7009 7262 7318 7342 20 Oak-Segment-Tar 50 14969 15354 16141 16470 16500 50 Profiler: top 5 stack trace(s) of of 39293 ms of 5713 thread dumps: 5713/68178 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3151/68178 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3026/68178 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1939/68178 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1767/68178 (2%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:217) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 5000 - Reading 100000 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 10 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6580 All paths: 123545 Oak-Segment-Tar 1 1390 1390 1448 1599 1599 4 Oak-Segment-Tar 10 2974 2989 3079 3158 3168 20 Oak-Segment-Tar 20 6215 6428 6653 6720 6797 20 Oak-Segment-Tar 50 14216 14630 15221 15410 15468 50 Profiler: top 5 stack trace(s) of of 36190 ms of 4670 thread dumps: 4670/56128 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1841/56128 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1794/56128 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1562/56128 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1549/56128 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 24%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.segment.file 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 10%: app//org.apache.jackrabbit.oak.commons . CacheSize 5000 - Reading 100000 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 100 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6418 All paths: 123545 Oak-Segment-Tar 1 1354 1354 1404 1501 1501 4 Oak-Segment-Tar 10 2930 2939 3070 3222 3235 20 Oak-Segment-Tar 20 6440 6558 6710 6791 6809 20 Oak-Segment-Tar 50 14035 14645 15237 15411 15474 50 Profiler: top 5 stack trace(s) of of 36079 ms of 4713 thread dumps: 4713/59484 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1906/59484 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1772/59484 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1441/59484 (2%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1400/59484 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 25%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.segment.file 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 12%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 5000 - Reading 100000 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 1000 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5720 All paths: 123545 Oak-Segment-Tar 1 1333 1333 1380 1437 1437 4 Oak-Segment-Tar 10 3045 3085 3153 3206 3211 20 Oak-Segment-Tar 20 6600 6654 6832 6959 7022 20 Oak-Segment-Tar 50 14244 14874 15719 15923 16016 50 Profiler: top 5 stack trace(s) of of 36552 ms of 4750 thread dumps: 4750/63412 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3827/63412 (6%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3684/63412 (5%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2065/63412 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2048/63412 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 43%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.core . CacheSize 5000 - Reading 100000 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 1 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5732 All paths: 123545 Oak-Segment-Tar 1 1380 1380 1403 1459 1459 4 Oak-Segment-Tar 10 3045 3059 3203 3314 3324 20 Oak-Segment-Tar 20 6474 6609 6738 6804 6818 20 Oak-Segment-Tar 50 15102 15232 15651 15839 15939 50 Profiler: top 5 stack trace(s) of of 36934 ms of 4846 thread dumps: 4846/60102 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2988/60102 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2919/60102 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2055/60102 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1858/60102 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 5000 - Reading 100000 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 10 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5363 All paths: 123545 Oak-Segment-Tar 1 1424 1424 1442 1456 1456 4 Oak-Segment-Tar 10 3103 3105 3231 3350 3359 20 Oak-Segment-Tar 20 6541 6879 7053 7129 7149 20 Oak-Segment-Tar 50 13983 15127 15815 16144 16278 50 Profiler: top 5 stack trace(s) of of 37589 ms of 4906 thread dumps: 4906/62169 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2608/62169 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2357/62169 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1976/62169 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1872/62169 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 40%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.core . CacheSize 5000 - Reading 100000 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 100 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6384 All paths: 123545 Oak-Segment-Tar 1 1394 1394 1419 1709 1709 4 Oak-Segment-Tar 10 3162 3164 3268 3446 3453 20 Oak-Segment-Tar 20 6565 6701 6849 7022 7069 20 Oak-Segment-Tar 50 14010 15161 15637 15849 15896 50 Profiler: top 5 stack trace(s) of of 38461 ms of 5216 thread dumps: 5216/63708 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2967/63708 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2709/63708 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2193/63708 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2062/63708 (3%): at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:428) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:218) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.core . CacheSize 5000 - Reading 100000 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 1000 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5870 All paths: 123545 Oak-Segment-Tar 1 1343 1343 1377 1458 1458 4 Oak-Segment-Tar 10 3066 3073 3219 3359 3364 20 Oak-Segment-Tar 20 6429 6436 6605 6712 6746 20 Oak-Segment-Tar 50 13986 14856 15605 15752 15809 50 Profiler: top 5 stack trace(s) of of 36264 ms of 4753 thread dumps: 4753/63491 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4048/63491 (6%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3728/63491 (5%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2143/63491 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2027/63491 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 44%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 12%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 6%: app//org.apache.jackrabbit.oak.core . CacheSize 5000 - Reading 100000 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 1 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5659 All paths: 123545 Oak-Segment-Tar 1 1383 1383 1414 1442 1442 4 Oak-Segment-Tar 10 3146 3174 3215 3272 3304 20 Oak-Segment-Tar 20 6645 6793 6997 7052 7054 20 Oak-Segment-Tar 50 14457 14847 15582 15783 15950 50 Profiler: top 5 stack trace(s) of of 37037 ms of 4887 thread dumps: 4887/63467 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4027/63467 (6%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3932/63467 (6%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2135/63467 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2131/63467 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 45%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.core 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 5000 - Reading 100000 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 10 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6554 All paths: 123545 Oak-Segment-Tar 1 1405 1405 1434 1578 1578 4 Oak-Segment-Tar 10 3135 3147 3257 3351 3360 20 Oak-Segment-Tar 20 6473 6731 6943 7019 7022 20 Oak-Segment-Tar 50 14259 14741 15679 15969 16009 50 Profiler: top 5 stack trace(s) of of 37706 ms of 5024 thread dumps: 5024/65611 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2282/65611 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2198/65611 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2089/65611 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2001/65611 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 18%: app//org.apache.jackrabbit.oak.segment.file 18%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 5000 - Reading 100000 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 100 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5735 All paths: 123545 Oak-Segment-Tar 1 1416 1416 1466 1489 1489 4 Oak-Segment-Tar 10 3037 3043 3094 3183 3190 20 Oak-Segment-Tar 20 6473 6591 6784 6816 6829 20 Oak-Segment-Tar 50 13871 14635 15425 15724 15804 50 Profiler: top 5 stack trace(s) of of 36643 ms of 4977 thread dumps: 4977/66741 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2400/66741 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2302/66741 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2208/66741 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2170/66741 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 44%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.core . CacheSize 5000 - Reading 100000 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 1000 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5602 All paths: 123545 Oak-Segment-Tar 1 1486 1486 1501 1583 1583 4 Oak-Segment-Tar 10 3304 3308 3362 3381 3407 20 Oak-Segment-Tar 20 6950 6971 7291 7389 7410 20 Oak-Segment-Tar 50 14961 15646 16361 16705 16825 50 Profiler: top 5 stack trace(s) of of 38842 ms of 5166 thread dumps: 5166/69457 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2311/69457 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2256/69457 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2223/69457 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2204/69457 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.segment.file 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100000 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 1 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6012 All paths: 123545 Oak-Segment-Tar 1 1782 1782 1799 1823 1823 3 Oak-Segment-Tar 10 4101 4164 4317 4453 4470 20 Oak-Segment-Tar 20 8884 9091 9212 9305 9338 20 Oak-Segment-Tar 50 18702 20008 20800 21195 21338 50 Profiler: top 5 stack trace(s) of of 47459 ms of 5860 thread dumps: 5860/77029 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2735/77029 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2651/77029 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1705/77029 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:160) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1622/77029 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:160) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.segment 25%: app//org.apache.jackrabbit.oak.segment.file 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.core . CacheSize 5000 - Reading 100000 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 10 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6185 All paths: 123545 Oak-Segment-Tar 1 2702 2702 2710 2717 2717 2 Oak-Segment-Tar 10 6627 6630 6722 6732 6732 10 Oak-Segment-Tar 20 12396 12434 12632 12792 12809 20 Oak-Segment-Tar 50 24143 27302 28385 29029 29064 50 Profiler: top 5 stack trace(s) of of 57133 ms of 5975 thread dumps: 7913/95373 (8%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 5975/95373 (6%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3799/95373 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2618/95373 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:524) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.exists(SecureNodeBuilder.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.exists(AbstractTree.java:225) at app//org.apache.jackrabbit.oak.core.MutableTree.exists(MutableTree.java:120) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:444) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1923/95373 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.rememberNotAccessControlled(PrincipalPermissionEntries.java:97) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:73) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 35%: app//org.apache.jackrabbit.oak.security.authorization.permission 18%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.segment.file 8%: app//org.apache.jackrabbit.oak.commons 3%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100000 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 100 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6334 All paths: 123545 Oak-Segment-Tar 1 13076 13076 13076 13076 13076 1 Oak-Segment-Tar 10 28159 28190 28615 28735 28739 10 Oak-Segment-Tar 20 55186 55542 56322 56657 56674 20 Oak-Segment-Tar 50 154966 158965 161489 162781 162929 50 Profiler: top 5 stack trace(s) of of 274300 ms of 20640 thread dumps: 71894/360371 (19%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 45446/360371 (12%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 20640/360371 (5%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 17337/360371 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.rememberNotAccessControlled(PrincipalPermissionEntries.java:97) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:73) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 15509/360371 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:524) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.exists(SecureNodeBuilder.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.exists(AbstractTree.java:225) at app//org.apache.jackrabbit.oak.core.MutableTree.exists(MutableTree.java:120) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:444) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 69%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.segment 6%: app//org.apache.jackrabbit.oak.segment.file 6%: app//org.apache.jackrabbit.oak.commons . CacheSize 5000 - Reading 100000 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 1000 --cache 5000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5418 All paths: 123545 Oak-Segment-Tar 1 44990 44990 44990 44990 44990 1 Oak-Segment-Tar 10 140302 140323 140805 141002 141009 10 Oak-Segment-Tar 20 260027 261951 264246 265680 265954 20 Oak-Segment-Tar 50 577916 590621 600258 605853 607303 50 Profiler: top 5 stack trace(s) of of 1103909 ms of 99129 thread dumps: 434856/2007911 (21%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 412435/2007911 (20%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 193206/2007911 (9%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 191095/2007911 (9%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 99129/2007911 (4%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) summary: 91%: app//org.apache.jackrabbit.oak.security.authorization.permission 4%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 1 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5455 All paths: 123545 Oak-Segment-Tar 1 1314 1314 1415 1748 1748 4 Oak-Segment-Tar 10 2887 2896 3003 3115 3125 20 Oak-Segment-Tar 20 6199 6237 6477 6573 6593 20 Oak-Segment-Tar 50 14036 14646 15177 15394 15454 50 Profiler: top 5 stack trace(s) of of 35873 ms of 4731 thread dumps: 4731/57295 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3584/57295 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3345/57295 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1931/57295 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1903/57295 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 10 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5806 All paths: 123545 Oak-Segment-Tar 1 1346 1346 1381 1495 1495 4 Oak-Segment-Tar 10 3068 3077 3182 3253 3259 20 Oak-Segment-Tar 20 6525 6689 6882 6990 7035 20 Oak-Segment-Tar 50 14913 15119 15682 15896 15938 50 Profiler: top 5 stack trace(s) of of 37284 ms of 4932 thread dumps: 4932/62453 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2890/62453 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2801/62453 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2038/62453 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1864/62453 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.cache 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 100 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5497 All paths: 123545 Oak-Segment-Tar 1 1355 1355 1372 1397 1397 4 Oak-Segment-Tar 10 2967 2971 3074 3171 3177 20 Oak-Segment-Tar 20 6587 6593 6785 6858 6866 20 Oak-Segment-Tar 50 14367 14505 15323 15603 15660 50 Profiler: top 5 stack trace(s) of of 35829 ms of 4700 thread dumps: 4700/61221 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4529/61221 (7%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4167/61221 (6%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2007/61221 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1917/61221 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 43%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.core . CacheSize 10000 - Reading 100000 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 1000 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5471 All paths: 123545 Oak-Segment-Tar 1 1401 1401 1487 1644 1644 4 Oak-Segment-Tar 10 3119 3162 3252 3364 3374 20 Oak-Segment-Tar 20 6479 6872 6944 7037 7084 20 Oak-Segment-Tar 50 14781 15321 16080 16357 16419 50 Profiler: top 5 stack trace(s) of of 37979 ms of 4967 thread dumps: 4967/64588 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2223/64588 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2213/64588 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2123/64588 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2095/64588 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.segment.file 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 1 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5362 All paths: 123545 Oak-Segment-Tar 1 1375 1375 1391 1420 1420 4 Oak-Segment-Tar 10 2943 3016 3087 3210 3240 20 Oak-Segment-Tar 20 6293 6382 6706 6810 6845 20 Oak-Segment-Tar 50 13315 14673 15341 15617 15677 50 Profiler: top 5 stack trace(s) of of 36080 ms of 4712 thread dumps: 4712/59798 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3461/59798 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3271/59798 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2056/59798 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1992/59798 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 10%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 10 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6245 All paths: 123545 Oak-Segment-Tar 1 1351 1351 1398 1460 1460 4 Oak-Segment-Tar 10 2992 3076 3177 3248 3255 20 Oak-Segment-Tar 20 6593 6605 6827 6953 6993 20 Oak-Segment-Tar 50 14297 14760 15381 15649 15668 50 Profiler: top 5 stack trace(s) of of 36619 ms of 4789 thread dumps: 4789/60789 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2476/60789 (4%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:132) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2427/60789 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:132) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2053/60789 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1892/60789 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 23%: app//org.apache.jackrabbit.oak.segment.file 21%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 10%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 10000 - Reading 100000 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 100 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5712 All paths: 123545 Oak-Segment-Tar 1 1403 1403 1431 1460 1460 4 Oak-Segment-Tar 10 2980 2987 3134 3274 3275 20 Oak-Segment-Tar 20 6671 6714 6809 6931 6971 20 Oak-Segment-Tar 50 14117 14632 15644 15827 15896 50 Profiler: top 5 stack trace(s) of of 36670 ms of 4808 thread dumps: 4808/61446 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2533/61446 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2298/61446 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1990/61446 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1871/61446 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 41%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.core 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 1000 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6476 All paths: 123545 Oak-Segment-Tar 1 1354 1354 1381 1428 1428 4 Oak-Segment-Tar 10 3022 3026 3090 3155 3160 20 Oak-Segment-Tar 20 6190 6353 6659 6777 6800 20 Oak-Segment-Tar 50 14095 14617 15154 15337 15384 50 Profiler: top 5 stack trace(s) of of 35603 ms of 4605 thread dumps: 4605/58809 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2039/58809 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1943/58809 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1883/58809 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1864/58809 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 25%: app//org.apache.jackrabbit.oak.segment 19%: app//org.apache.jackrabbit.oak.segment.file 12%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 10000 - Reading 100000 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 1 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5383 All paths: 123545 Oak-Segment-Tar 1 1383 1383 1467 1491 1491 4 Oak-Segment-Tar 10 3021 3025 3183 3334 3336 20 Oak-Segment-Tar 20 6481 6503 6689 6831 6924 20 Oak-Segment-Tar 50 14945 15502 15930 16132 16212 50 Profiler: top 5 stack trace(s) of of 37636 ms of 4940 thread dumps: 4940/61873 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2427/61873 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2181/61873 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2018/61873 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1982/61873 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 39%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.core . CacheSize 10000 - Reading 100000 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 10 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5646 All paths: 123545 Oak-Segment-Tar 1 1383 1383 1411 1455 1455 4 Oak-Segment-Tar 10 2987 3070 3158 3217 3226 20 Oak-Segment-Tar 20 6633 6708 6771 6865 6872 20 Oak-Segment-Tar 50 14349 14862 15557 15797 15918 50 Profiler: top 5 stack trace(s) of of 36730 ms of 4837 thread dumps: 4837/64238 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2259/64238 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2182/64238 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2115/64238 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1938/64238 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 20%: app//org.apache.jackrabbit.oak.segment.file 16%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 100 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5549 All paths: 123545 Oak-Segment-Tar 1 1352 1352 1409 1480 1480 4 Oak-Segment-Tar 10 2854 2866 2999 3119 3139 20 Oak-Segment-Tar 20 6347 6354 6531 6683 6692 20 Oak-Segment-Tar 50 13417 14063 14783 15071 15099 50 Profiler: top 5 stack trace(s) of of 35170 ms of 4652 thread dumps: 4652/58815 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1933/58815 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1901/58815 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1900/58815 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1834/58815 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 19%: app//org.apache.jackrabbit.oak.segment 19%: app//org.apache.jackrabbit.oak.segment.file 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 1000 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5178 All paths: 123545 Oak-Segment-Tar 1 1404 1404 1413 1500 1500 4 Oak-Segment-Tar 10 3120 3138 3559 4069 4104 20 Oak-Segment-Tar 20 6515 6583 6880 6972 6988 20 Oak-Segment-Tar 50 14035 15043 15705 15976 16044 50 Profiler: top 5 stack trace(s) of of 37769 ms of 4920 thread dumps: 4920/64849 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2302/64849 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2277/64849 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2240/64849 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2181/64849 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 20%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.segment.file 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 1 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5409 All paths: 123545 Oak-Segment-Tar 1 1350 1350 1435 1699 1699 4 Oak-Segment-Tar 10 2891 3064 3134 3182 3191 20 Oak-Segment-Tar 20 6455 6467 6634 6735 6784 20 Oak-Segment-Tar 50 14154 14845 15737 16122 16185 50 Profiler: top 5 stack trace(s) of of 36761 ms of 4897 thread dumps: 4897/66460 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3929/66460 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3588/66460 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2372/66460 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2181/66460 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 10 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5968 All paths: 123545 Oak-Segment-Tar 1 1423 1423 1455 1492 1492 4 Oak-Segment-Tar 10 3096 3105 3188 3228 3249 20 Oak-Segment-Tar 20 6689 6720 6927 7023 7054 20 Oak-Segment-Tar 50 13748 14608 15553 15846 15889 50 Profiler: top 5 stack trace(s) of of 36971 ms of 4933 thread dumps: 4933/66734 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2280/66734 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2183/66734 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2144/66734 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1965/66734 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 100 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5499 All paths: 123545 Oak-Segment-Tar 1 1310 1310 1382 1447 1447 4 Oak-Segment-Tar 10 2991 3019 3110 3170 3175 20 Oak-Segment-Tar 20 6321 6425 6651 6759 6766 20 Oak-Segment-Tar 50 13645 14437 15345 15627 15646 50 Profiler: top 5 stack trace(s) of of 35958 ms of 4740 thread dumps: 4740/63174 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2691/63174 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2526/63174 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1726/63174 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1686/63174 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 39%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.core 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 1000 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5599 All paths: 123545 Oak-Segment-Tar 1 1336 1336 1387 1426 1426 4 Oak-Segment-Tar 10 2951 2981 3114 3172 3173 20 Oak-Segment-Tar 20 6157 6334 6628 6747 6793 20 Oak-Segment-Tar 50 13247 14210 14986 15364 15447 50 Profiler: top 5 stack trace(s) of of 35755 ms of 4763 thread dumps: 4763/64058 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2227/64058 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2176/64058 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1947/64058 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1840/64058 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 23%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.segment.file 12%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 10000 - Reading 100000 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 1 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5894 All paths: 123545 Oak-Segment-Tar 1 1538 1538 1592 1657 1657 4 Oak-Segment-Tar 10 3369 3390 3434 3471 3476 20 Oak-Segment-Tar 20 6718 6932 7178 7257 7265 20 Oak-Segment-Tar 50 15905 16137 16834 17172 17217 50 Profiler: top 5 stack trace(s) of of 39627 ms of 5140 thread dumps: 5140/69340 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2275/69340 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2238/69340 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1850/69340 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1805/69340 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 20%: app//org.apache.jackrabbit.oak.segment.file 18%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 10000 - Reading 100000 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 10 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5362 All paths: 123545 Oak-Segment-Tar 1 1438 1438 1503 1539 1539 4 Oak-Segment-Tar 10 3288 3316 3391 3486 3495 20 Oak-Segment-Tar 20 6792 6811 6945 7082 7113 20 Oak-Segment-Tar 50 14457 15550 16475 16790 16945 50 Profiler: top 5 stack trace(s) of of 38970 ms of 5140 thread dumps: 5140/70331 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4326/70331 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4142/70331 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2023/70331 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1886/70331 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.cache 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.core 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 10000 - Reading 100000 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 100 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5571 All paths: 123545 Oak-Segment-Tar 1 1395 1395 1449 1484 1484 4 Oak-Segment-Tar 10 3213 3228 3343 3545 3554 20 Oak-Segment-Tar 20 6594 6604 6748 6863 6876 20 Oak-Segment-Tar 50 14678 15082 16135 16372 16666 50 Profiler: top 5 stack trace(s) of of 37761 ms of 4889 thread dumps: 4889/67165 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3847/67165 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3813/67165 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1749/67165 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1514/67165 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.cache 8%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 10000 - Reading 100000 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 1000 --cache 10000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5627 All paths: 123545 Oak-Segment-Tar 1 47326 47326 47326 47326 47326 1 Oak-Segment-Tar 10 156343 156352 156930 157855 157857 10 Oak-Segment-Tar 20 280227 281062 288121 290002 291201 20 Oak-Segment-Tar 50 643470 648793 664763 672923 674156 50 Profiler: top 5 stack trace(s) of of 1216393 ms of 109935 thread dumps: 569053/2243724 (25%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 546083/2243724 (24%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 164065/2243724 (7%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 152752/2243724 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 128703/2243724 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:524) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.exists(SecureNodeBuilder.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.exists(AbstractTree.java:225) at app//org.apache.jackrabbit.oak.core.MutableTree.exists(MutableTree.java:120) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:444) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 91%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.commons . CacheSize 50000 - Reading 100000 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 1 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6170 All paths: 123545 Oak-Segment-Tar 1 1386 1386 1430 1434 1434 4 Oak-Segment-Tar 10 3172 3192 3223 3266 3279 20 Oak-Segment-Tar 20 6833 6954 7132 7211 7226 20 Oak-Segment-Tar 50 15509 15882 16407 16674 16737 50 Profiler: top 5 stack trace(s) of of 37929 ms of 4905 thread dumps: 4905/64769 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2071/64769 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2045/64769 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2016/64769 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1918/64769 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 27%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.segment.file 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.core . CacheSize 50000 - Reading 100000 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 10 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5491 All paths: 123545 Oak-Segment-Tar 1 1355 1355 1359 1465 1465 4 Oak-Segment-Tar 10 3038 3052 3203 3379 3381 20 Oak-Segment-Tar 20 6532 6820 6951 7088 7104 20 Oak-Segment-Tar 50 14590 15245 15692 15991 16047 50 Profiler: top 5 stack trace(s) of of 37082 ms of 4826 thread dumps: 4826/61828 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2891/61828 (4%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2761/61828 (4%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2263/61828 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2041/61828 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 41%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.core . CacheSize 50000 - Reading 100000 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 100 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6077 All paths: 123545 Oak-Segment-Tar 1 1337 1337 1392 1403 1403 4 Oak-Segment-Tar 10 3143 3151 3308 3464 3468 20 Oak-Segment-Tar 20 6534 6601 7009 7047 7047 20 Oak-Segment-Tar 50 14329 15041 15655 15962 16098 50 Profiler: top 5 stack trace(s) of of 37023 ms of 4745 thread dumps: 4745/60872 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3764/60872 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3417/60872 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2005/60872 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1946/60872 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 32%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.cache 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.core . CacheSize 50000 - Reading 100000 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1 --numberOfUsers 1000 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5866 All paths: 123545 Oak-Segment-Tar 1 1434 1434 1453 1463 1463 4 Oak-Segment-Tar 10 3214 3227 3339 3420 3429 20 Oak-Segment-Tar 20 6512 6651 7071 7153 7169 20 Oak-Segment-Tar 50 15133 15589 16183 16412 16465 50 Profiler: top 5 stack trace(s) of of 37980 ms of 4948 thread dumps: 4948/65078 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2208/65078 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2043/65078 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1999/65078 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1975/65078 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 20%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.segment.file 14%: app//org.apache.jackrabbit.oak.plugins.tree.impl 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.commons . CacheSize 50000 - Reading 100000 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 1 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5978 All paths: 123545 Oak-Segment-Tar 1 1388 1388 1443 1469 1469 4 Oak-Segment-Tar 10 2871 2915 3082 3222 3247 20 Oak-Segment-Tar 20 6508 6516 6653 6771 6779 20 Oak-Segment-Tar 50 14004 14887 15420 15550 15653 50 Profiler: top 5 stack trace(s) of of 36339 ms of 4850 thread dumps: 4850/63185 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3819/63185 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3595/63185 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2906/63185 (4%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2900/63185 (4%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.commons . CacheSize 50000 - Reading 100000 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 10 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5546 All paths: 123545 Oak-Segment-Tar 1 1365 1365 1376 1390 1390 4 Oak-Segment-Tar 10 3110 3112 3159 3231 3239 20 Oak-Segment-Tar 20 6423 6581 6764 6868 6891 20 Oak-Segment-Tar 50 14018 14598 15211 15424 15499 50 Profiler: top 5 stack trace(s) of of 36340 ms of 4728 thread dumps: 4728/57524 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2747/57524 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2525/57524 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1839/57524 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1791/57524 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.cache 10%: app//org.apache.jackrabbit.oak.commons . CacheSize 50000 - Reading 100000 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 100 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5451 All paths: 123545 Oak-Segment-Tar 1 1324 1324 1395 1456 1456 4 Oak-Segment-Tar 10 2897 2922 2992 3079 3089 20 Oak-Segment-Tar 20 6539 6593 6742 6816 6852 20 Oak-Segment-Tar 50 13938 14902 15315 15560 15616 50 Profiler: top 5 stack trace(s) of of 35955 ms of 4824 thread dumps: 4824/63839 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3936/63839 (6%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3774/63839 (5%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2176/63839 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1952/63839 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 46%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.core 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 50000 - Reading 100000 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10 --numberOfUsers 1000 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5439 All paths: 123545 Oak-Segment-Tar 1 1325 1325 1332 1402 1402 4 Oak-Segment-Tar 10 2967 3008 3128 3200 3203 20 Oak-Segment-Tar 20 6511 6534 6816 6871 6944 20 Oak-Segment-Tar 50 13716 14514 15145 15396 15414 50 Profiler: top 5 stack trace(s) of of 35633 ms of 4618 thread dumps: 4618/58678 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1976/58678 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1933/58678 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1840/58678 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1811/58678 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 23%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.segment.file 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 50000 - Reading 100000 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 1 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5831 All paths: 123545 Oak-Segment-Tar 1 1417 1417 1471 1802 1802 4 Oak-Segment-Tar 10 2976 2981 3040 3082 3084 20 Oak-Segment-Tar 20 6333 6386 6598 6689 6716 20 Oak-Segment-Tar 50 14100 14395 15065 15404 15496 50 Profiler: top 5 stack trace(s) of of 36256 ms of 4839 thread dumps: 4839/59375 (8%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1995/59375 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1990/59375 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1882/59375 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1873/59375 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.segment.file 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 50000 - Reading 100000 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 10 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5633 All paths: 123545 Oak-Segment-Tar 1 1390 1390 1413 1516 1516 4 Oak-Segment-Tar 10 3092 3102 3286 3422 3438 20 Oak-Segment-Tar 20 6587 6646 6800 6902 6910 20 Oak-Segment-Tar 50 14193 15120 15717 16022 16136 50 Profiler: top 5 stack trace(s) of of 37301 ms of 4789 thread dumps: 4789/59937 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2621/59937 (4%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2377/59937 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2008/59937 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1914/59937 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 22%: app//org.apache.jackrabbit.oak.segment.file 19%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 50000 - Reading 100000 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 100 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5884 All paths: 123545 Oak-Segment-Tar 1 1385 1385 1416 1426 1426 4 Oak-Segment-Tar 10 2848 2923 3047 3102 3107 20 Oak-Segment-Tar 20 6362 6550 6710 6794 6813 20 Oak-Segment-Tar 50 13886 14600 15336 15602 15659 50 Profiler: top 5 stack trace(s) of of 36007 ms of 4686 thread dumps: 4686/59513 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2039/59513 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2008/59513 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1980/59513 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1885/59513 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 20%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 50000 - Reading 100000 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 100 --numberOfUsers 1000 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5765 All paths: 123545 Oak-Segment-Tar 1 1335 1335 1341 1406 1406 4 Oak-Segment-Tar 10 3049 3076 3195 3297 3318 20 Oak-Segment-Tar 20 6452 6715 6962 7065 7088 20 Oak-Segment-Tar 50 14040 14810 15590 15814 15882 50 Profiler: top 5 stack trace(s) of of 36675 ms of 4850 thread dumps: 4850/64215 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4155/64215 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4039/64215 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2198/64215 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2048/64215 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.cache 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.core . CacheSize 50000 - Reading 100000 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 1 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5771 All paths: 123545 Oak-Segment-Tar 1 1506 1506 1536 1600 1600 4 Oak-Segment-Tar 10 2991 3091 3174 3215 3225 20 Oak-Segment-Tar 20 6358 6463 6715 6761 6806 20 Oak-Segment-Tar 50 14394 14922 15655 15903 15976 50 Profiler: top 5 stack trace(s) of of 37429 ms of 5068 thread dumps: 5068/66392 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4143/66392 (6%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3822/66392 (5%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2215/66392 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2156/66392 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 44%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.core . CacheSize 50000 - Reading 100000 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 10 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5363 All paths: 123545 Oak-Segment-Tar 1 1480 1480 1589 1680 1680 4 Oak-Segment-Tar 10 3093 3132 3207 3263 3295 20 Oak-Segment-Tar 20 6662 6669 6797 6865 6874 20 Oak-Segment-Tar 50 13962 14769 15459 15789 15831 50 Profiler: top 5 stack trace(s) of of 37604 ms of 5089 thread dumps: 5089/64880 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2553/64880 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2502/64880 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2233/64880 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2084/64880 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 38%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.core 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 50000 - Reading 100000 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 100 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5351 All paths: 123545 Oak-Segment-Tar 1 1371 1371 1454 1558 1558 4 Oak-Segment-Tar 10 3084 3091 3172 3288 3295 20 Oak-Segment-Tar 20 6604 6659 6783 6874 6879 20 Oak-Segment-Tar 50 14589 14771 15675 15923 15972 50 Profiler: top 5 stack trace(s) of of 36982 ms of 4968 thread dumps: 4968/67079 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2648/67079 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2431/67079 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2366/67079 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2140/67079 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 39%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.core 8%: app//org.apache.jackrabbit.oak.commons . CacheSize 50000 - Reading 100000 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 1000 --numberOfUsers 1000 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5368 All paths: 123545 Oak-Segment-Tar 1 1396 1396 1441 1508 1508 4 Oak-Segment-Tar 10 3136 3139 3181 3207 3219 20 Oak-Segment-Tar 20 6509 6619 6891 6979 7023 20 Oak-Segment-Tar 50 14120 14744 15459 15787 15870 50 Profiler: top 5 stack trace(s) of of 36738 ms of 4887 thread dumps: 4887/64339 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2174/64339 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2067/64339 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2064/64339 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2051/64339 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 20%: app//org.apache.jackrabbit.oak.segment.file 16%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 50000 - Reading 100000 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 1 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5517 All paths: 123545 Oak-Segment-Tar 1 1466 1466 1506 1557 1557 4 Oak-Segment-Tar 10 3379 3389 3447 3623 3630 20 Oak-Segment-Tar 20 6735 6914 7104 7209 7265 20 Oak-Segment-Tar 50 14376 15358 16370 16802 16982 50 Profiler: top 5 stack trace(s) of of 39187 ms of 5133 thread dumps: 5133/69237 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2595/69237 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2530/69237 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1952/69237 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1884/69237 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 41%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl 5%: app//org.apache.jackrabbit.oak.cache . CacheSize 50000 - Reading 100000 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 10 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5601 All paths: 123545 Oak-Segment-Tar 1 1457 1457 1524 1550 1550 4 Oak-Segment-Tar 10 3257 3330 3425 3501 3503 20 Oak-Segment-Tar 20 6656 6757 6981 7096 7131 20 Oak-Segment-Tar 50 14220 14741 16427 16883 17051 50 Profiler: top 5 stack trace(s) of of 39199 ms of 5154 thread dumps: 5154/69064 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3591/69064 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3352/69064 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1831/69064 (2%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:166) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1786/69064 (2%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:166) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 32%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.core . CacheSize 50000 - Reading 100000 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 100 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5680 All paths: 123545 Oak-Segment-Tar 1 1392 1392 1481 1626 1626 4 Oak-Segment-Tar 10 3263 3264 3408 3537 3547 20 Oak-Segment-Tar 20 6537 6559 6904 7052 7067 20 Oak-Segment-Tar 50 14223 15171 16206 16541 16596 50 Profiler: top 5 stack trace(s) of of 38461 ms of 4951 thread dumps: 4951/66969 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2207/66969 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2180/66969 (3%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1930/66969 (2%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1748/66969 (2%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 24%: app//org.apache.jackrabbit.oak.segment 20%: app//org.apache.jackrabbit.oak.segment.file 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.core . CacheSize 50000 - Reading 100000 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100000 --numberOfInitialAce 10000 --numberOfUsers 1000 --cache 50000 --csvFile EagerCacheSizeTest_20191029_155052.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5534 All paths: 123545 Oak-Segment-Tar 1 1436 1436 1580 1846 1846 4 Oak-Segment-Tar 10 3329 3342 3403 3545 3561 20 Oak-Segment-Tar 20 6768 6787 7088 7167 7171 20 Oak-Segment-Tar 50 15222 15601 16320 16744 16828 50 Profiler: top 5 stack trace(s) of of 39289 ms of 5171 thread dumps: 5171/69879 (7%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 4149/69879 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3832/69879 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1799/69879 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1588/69879 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.cache 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.core . ----------------------------------------- Benchmark completed. see EagerCacheSizeTest_20191029_155052.csv for details: Benchmarks: EagerCacheSizeTest Fixture: Oak-Segment-Tar Runtime: 5 Concurrency: 1,10,20,50 Profiling: true Items to Read: 100000 Number of ACEs: 1 10 100 1000 10000 Number of Principals: 1 10 100 1000 EagerCacheSize: 250 1000 5000 10000 50000 CompositionType: -------------------------------------- CacheSize 250 - Reading 100000 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1508, 1508, 1574, 1636, 1636, 4 Oak-Segment-Tar , 10, 3013, 3042, 3233, 3377, 3400, 20 Oak-Segment-Tar , 20, 6829, 6851, 7174, 7378, 7388, 20 Oak-Segment-Tar , 50, 14826, 15269, 15565, 15820, 15869, 50 CacheSize 250 - Reading 100000 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1385, 1385, 1471, 1669, 1669, 4 Oak-Segment-Tar , 10, 3347, 3350, 3401, 3462, 3468, 20 Oak-Segment-Tar , 20, 6985, 6993, 7198, 7253, 7269, 20 Oak-Segment-Tar , 50, 14826, 15662, 16084, 16255, 16347, 50 CacheSize 250 - Reading 100000 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1513, 1513, 1531, 1572, 1572, 4 Oak-Segment-Tar , 10, 3190, 3203, 3316, 3345, 3347, 20 Oak-Segment-Tar , 20, 7189, 7240, 7321, 7393, 7412, 20 Oak-Segment-Tar , 50, 14146, 14971, 15427, 15653, 15755, 50 CacheSize 250 - Reading 100000 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1519, 1519, 1599, 1745, 1745, 4 Oak-Segment-Tar , 10, 3387, 3404, 3611, 3881, 3894, 20 Oak-Segment-Tar , 20, 6688, 6756, 6866, 6956, 6999, 20 Oak-Segment-Tar , 50, 15157, 15693, 16181, 16372, 16440, 50 CacheSize 250 - Reading 100000 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1645, 1645, 1680, 1866, 1866, 3 Oak-Segment-Tar , 10, 3124, 3129, 3185, 3244, 3251, 20 Oak-Segment-Tar , 20, 6470, 6521, 6829, 6889, 6889, 20 Oak-Segment-Tar , 50, 14649, 15112, 15690, 15862, 15936, 50 CacheSize 250 - Reading 100000 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1443, 1443, 1462, 1512, 1512, 4 Oak-Segment-Tar , 10, 3216, 3226, 3343, 3384, 3386, 20 Oak-Segment-Tar , 20, 6334, 6488, 6726, 6824, 6839, 20 Oak-Segment-Tar , 50, 14622, 15032, 15583, 15783, 15874, 50 CacheSize 250 - Reading 100000 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1499, 1499, 1587, 1754, 1754, 4 Oak-Segment-Tar , 10, 3093, 3143, 3297, 3486, 3487, 20 Oak-Segment-Tar , 20, 6480, 6838, 7080, 7155, 7168, 20 Oak-Segment-Tar , 50, 14306, 15205, 15685, 15889, 15930, 50 CacheSize 250 - Reading 100000 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1661, 1661, 1662, 1838, 1838, 3 Oak-Segment-Tar , 10, 3110, 3170, 3216, 3246, 3268, 20 Oak-Segment-Tar , 20, 6476, 6602, 6782, 6904, 6913, 20 Oak-Segment-Tar , 50, 14574, 15383, 15967, 16162, 16231, 50 CacheSize 250 - Reading 100000 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1485, 1485, 1507, 1555, 1555, 4 Oak-Segment-Tar , 10, 3212, 3215, 3421, 3555, 3577, 20 Oak-Segment-Tar , 20, 6763, 6799, 7108, 7170, 7193, 20 Oak-Segment-Tar , 50, 14935, 15244, 15687, 15956, 16027, 50 CacheSize 250 - Reading 100000 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1523, 1523, 1643, 1686, 1686, 4 Oak-Segment-Tar , 10, 3261, 3263, 3338, 3397, 3400, 20 Oak-Segment-Tar , 20, 6627, 6645, 6816, 6856, 6870, 20 Oak-Segment-Tar , 50, 15437, 15504, 16091, 16316, 16378, 50 CacheSize 250 - Reading 100000 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1650, 1650, 1681, 1847, 1847, 3 Oak-Segment-Tar , 10, 3331, 3377, 3498, 3661, 3669, 20 Oak-Segment-Tar , 20, 6664, 6714, 6827, 6950, 6957, 20 Oak-Segment-Tar , 50, 14912, 15205, 15803, 16004, 16042, 50 CacheSize 250 - Reading 100000 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1449, 1449, 1544, 1609, 1609, 4 Oak-Segment-Tar , 10, 3195, 3224, 3472, 3687, 3704, 20 Oak-Segment-Tar , 20, 6983, 7020, 7126, 7219, 7228, 20 Oak-Segment-Tar , 50, 14375, 15356, 15892, 16063, 16188, 50 CacheSize 250 - Reading 100000 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1689, 1689, 1833, 1889, 1889, 3 Oak-Segment-Tar , 10, 4055, 4081, 4220, 4310, 4323, 20 Oak-Segment-Tar , 20, 8341, 8411, 8540, 8649, 8678, 20 Oak-Segment-Tar , 50, 17521, 18693, 19254, 19493, 19552, 50 CacheSize 250 - Reading 100000 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2445, 2445, 2585, 2724, 2724, 2 Oak-Segment-Tar , 10, 5301, 5305, 5356, 5400, 5401, 10 Oak-Segment-Tar , 20, 10311, 10453, 10698, 10774, 10790, 20 Oak-Segment-Tar , 50, 21285, 22729, 23761, 24156, 24345, 50 CacheSize 250 - Reading 100000 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 7015, 7015, 7015, 7015, 7015, 1 Oak-Segment-Tar , 10, 12742, 12742, 12806, 12905, 12909, 10 Oak-Segment-Tar , 20, 26144, 26314, 26785, 26962, 27006, 20 Oak-Segment-Tar , 50, 59417, 61176, 63314, 63984, 64230, 50 CacheSize 250 - Reading 100000 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 40533, 40533, 40533, 40533, 40533, 1 Oak-Segment-Tar , 10, 98921, 98927, 99419, 99757, 99764, 10 Oak-Segment-Tar , 20, 221363, 227921, 230495, 231318, 232039, 20 Oak-Segment-Tar , 50, 317535, 322533, 327964, 349956, 351001, 50 CacheSize 250 - Reading 100000 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1903, 1903, 2084, 2086, 2086, 3 Oak-Segment-Tar , 10, 4610, 4654, 4880, 5000, 5015, 20 Oak-Segment-Tar , 20, 9719, 9768, 10032, 10098, 10141, 20 Oak-Segment-Tar , 50, 19499, 21083, 21747, 22151, 22168, 50 CacheSize 250 - Reading 100000 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2832, 2832, 2888, 2944, 2944, 2 Oak-Segment-Tar , 10, 6936, 6938, 7020, 7067, 7068, 10 Oak-Segment-Tar , 20, 13826, 13831, 14030, 14101, 14156, 20 Oak-Segment-Tar , 50, 28215, 29236, 30781, 31280, 31455, 50 CacheSize 250 - Reading 100000 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 15416, 15416, 15416, 15416, 15416, 1 Oak-Segment-Tar , 10, 34354, 34376, 34739, 35045, 35049, 10 Oak-Segment-Tar , 20, 65941, 66131, 66620, 66864, 66977, 20 Oak-Segment-Tar , 50, 185785, 189877, 192511, 193491, 193878, 50 CacheSize 250 - Reading 100000 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 76080, 76080, 76080, 76080, 76080, 1 Oak-Segment-Tar , 10, 230561, 230569, 233344, 234225, 234227, 10 Oak-Segment-Tar , 20, 508594, 519680, 531473, 534785, 535132, 20 Oak-Segment-Tar , 50, 1069901, 1081858, 1092565, 1097946, 1098606, 50 CacheSize 1000 - Reading 100000 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1363, 1363, 1372, 1522, 1522, 4 Oak-Segment-Tar , 10, 3129, 3142, 3329, 3476, 3491, 20 Oak-Segment-Tar , 20, 6773, 6805, 7029, 7131, 7147, 20 Oak-Segment-Tar , 50, 15453, 15784, 16357, 16592, 16707, 50 CacheSize 1000 - Reading 100000 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1358, 1358, 1428, 1467, 1467, 4 Oak-Segment-Tar , 10, 2991, 3025, 3221, 3365, 3369, 20 Oak-Segment-Tar , 20, 6754, 6841, 6965, 7082, 7104, 20 Oak-Segment-Tar , 50, 14336, 14841, 15651, 15960, 16025, 50 CacheSize 1000 - Reading 100000 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1391, 1391, 1409, 1415, 1415, 4 Oak-Segment-Tar , 10, 3199, 3215, 3336, 3438, 3440, 20 Oak-Segment-Tar , 20, 6821, 6842, 6999, 7110, 7136, 20 Oak-Segment-Tar , 50, 14949, 15599, 16177, 16378, 16469, 50 CacheSize 1000 - Reading 100000 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1338, 1338, 1354, 1504, 1504, 4 Oak-Segment-Tar , 10, 2950, 2957, 3116, 3227, 3240, 20 Oak-Segment-Tar , 20, 6395, 6417, 6581, 6686, 6714, 20 Oak-Segment-Tar , 50, 13293, 14326, 15125, 15397, 15461, 50 CacheSize 1000 - Reading 100000 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1382, 1382, 1398, 1456, 1456, 4 Oak-Segment-Tar , 10, 2946, 2968, 3129, 3187, 3210, 20 Oak-Segment-Tar , 20, 6470, 6504, 6677, 6792, 6794, 20 Oak-Segment-Tar , 50, 13995, 14465, 15167, 15450, 15526, 50 CacheSize 1000 - Reading 100000 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1374, 1374, 1427, 1490, 1490, 4 Oak-Segment-Tar , 10, 3016, 3037, 3100, 3135, 3143, 20 Oak-Segment-Tar , 20, 6247, 6293, 6454, 6564, 6593, 20 Oak-Segment-Tar , 50, 13322, 14333, 15084, 15358, 15482, 50 CacheSize 1000 - Reading 100000 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1362, 1362, 1428, 1668, 1668, 4 Oak-Segment-Tar , 10, 3697, 3721, 3810, 3926, 3937, 20 Oak-Segment-Tar , 20, 7604, 7641, 7854, 7971, 7987, 20 Oak-Segment-Tar , 50, 15548, 16386, 17121, 17335, 17382, 50 CacheSize 1000 - Reading 100000 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1882, 1882, 1940, 2265, 2265, 3 Oak-Segment-Tar , 10, 3972, 4043, 4553, 4969, 4987, 20 Oak-Segment-Tar , 20, 7088, 7388, 7670, 7865, 7894, 20 Oak-Segment-Tar , 50, 14646, 15354, 16457, 17105, 17201, 50 CacheSize 1000 - Reading 100000 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2075, 2075, 2356, 2493, 2493, 3 Oak-Segment-Tar , 10, 4398, 4447, 4599, 4827, 4861, 20 Oak-Segment-Tar , 20, 7902, 8317, 8665, 8772, 8820, 20 Oak-Segment-Tar , 50, 15465, 16975, 17835, 18211, 18338, 50 CacheSize 1000 - Reading 100000 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2103, 2103, 2259, 2282, 2282, 3 Oak-Segment-Tar , 10, 4417, 4454, 4698, 4921, 4954, 20 Oak-Segment-Tar , 20, 7395, 7429, 7576, 7712, 7723, 20 Oak-Segment-Tar , 50, 15183, 15920, 16422, 16683, 16800, 50 CacheSize 1000 - Reading 100000 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2633, 2633, 2705, 2776, 2776, 2 Oak-Segment-Tar , 10, 4031, 4055, 4227, 4443, 4460, 20 Oak-Segment-Tar , 20, 7528, 7654, 7836, 7924, 7961, 20 Oak-Segment-Tar , 50, 15370, 16314, 16913, 17122, 17214, 50 CacheSize 1000 - Reading 100000 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1991, 1991, 2110, 2599, 2599, 3 Oak-Segment-Tar , 10, 3487, 3511, 3962, 4431, 4457, 20 Oak-Segment-Tar , 20, 6754, 6889, 7146, 7257, 7272, 20 Oak-Segment-Tar , 50, 16220, 17082, 17685, 17881, 17921, 50 CacheSize 1000 - Reading 100000 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2179, 2179, 2223, 2512, 2512, 3 Oak-Segment-Tar , 10, 5183, 5188, 5296, 5389, 5395, 10 Oak-Segment-Tar , 20, 6850, 7331, 7640, 7826, 7828, 20 Oak-Segment-Tar , 50, 16111, 16420, 16919, 17144, 17255, 50 CacheSize 1000 - Reading 100000 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3257, 3257, 3763, 4269, 4269, 2 Oak-Segment-Tar , 10, 7670, 7671, 7756, 7829, 7829, 10 Oak-Segment-Tar , 20, 12472, 12674, 13123, 13214, 13221, 20 Oak-Segment-Tar , 50, 25044, 25850, 26885, 27307, 27437, 50 CacheSize 1000 - Reading 100000 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 6234, 6234, 6234, 6234, 6234, 1 Oak-Segment-Tar , 10, 11409, 11410, 11531, 11698, 11706, 10 Oak-Segment-Tar , 20, 22293, 22408, 23442, 23699, 23709, 20 Oak-Segment-Tar , 50, 48010, 48874, 50511, 51545, 51617, 50 CacheSize 1000 - Reading 100000 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 69208, 69208, 69208, 69208, 69208, 1 Oak-Segment-Tar , 10, 132884, 132893, 134093, 135234, 135273, 10 Oak-Segment-Tar , 20, 273443, 274265, 277069, 278238, 278733, 20 Oak-Segment-Tar , 50, 477707, 483838, 503033, 516629, 519520, 50 CacheSize 1000 - Reading 100000 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2106, 2106, 2176, 2207, 2207, 3 Oak-Segment-Tar , 10, 6504, 6505, 6556, 6677, 6688, 10 Oak-Segment-Tar , 20, 12920, 12931, 13152, 13234, 13305, 20 Oak-Segment-Tar , 50, 20239, 22241, 23361, 23725, 23781, 50 CacheSize 1000 - Reading 100000 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3054, 3054, 3297, 3540, 3540, 2 Oak-Segment-Tar , 10, 8002, 8003, 8174, 8262, 8267, 10 Oak-Segment-Tar , 20, 15392, 15607, 15987, 16052, 16107, 20 Oak-Segment-Tar , 50, 30112, 31474, 33007, 33586, 33743, 50 CacheSize 1000 - Reading 100000 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 22628, 22628, 22628, 22628, 22628, 1 Oak-Segment-Tar , 10, 56601, 56608, 56999, 57773, 57806, 10 Oak-Segment-Tar , 20, 98384, 98989, 101588, 102294, 102628, 20 Oak-Segment-Tar , 50, 239133, 242924, 247310, 248884, 249217, 50 CacheSize 1000 - Reading 100000 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 52774, 52774, 52774, 52774, 52774, 1 Oak-Segment-Tar , 10, 178034, 178071, 179273, 180069, 180114, 10 Oak-Segment-Tar , 20, 343411, 344028, 351484, 353494, 353909, 20 Oak-Segment-Tar , 50, 676465, 681495, 691999, 699029, 700316, 50 CacheSize 5000 - Reading 100000 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1507, 1507, 1564, 1601, 1601, 4 Oak-Segment-Tar , 10, 3172, 3193, 3326, 3478, 3498, 20 Oak-Segment-Tar , 20, 6524, 6793, 6871, 6939, 6950, 20 Oak-Segment-Tar , 50, 15479, 15935, 16383, 16537, 16647, 50 CacheSize 5000 - Reading 100000 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1457, 1457, 1561, 1654, 1654, 4 Oak-Segment-Tar , 10, 3298, 3326, 3372, 3436, 3438, 20 Oak-Segment-Tar , 20, 7141, 7236, 7379, 7448, 7454, 20 Oak-Segment-Tar , 50, 14985, 15286, 15994, 16184, 16299, 50 CacheSize 5000 - Reading 100000 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1394, 1394, 1424, 1685, 1685, 4 Oak-Segment-Tar , 10, 3191, 3196, 3257, 3310, 3317, 20 Oak-Segment-Tar , 20, 6867, 7004, 7096, 7179, 7188, 20 Oak-Segment-Tar , 50, 14860, 15526, 15976, 16207, 16260, 50 CacheSize 5000 - Reading 100000 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1484, 1484, 1551, 1726, 1726, 4 Oak-Segment-Tar , 10, 3139, 3153, 3272, 3385, 3402, 20 Oak-Segment-Tar , 20, 6939, 7040, 7279, 7372, 7396, 20 Oak-Segment-Tar , 50, 15797, 16255, 16719, 16919, 16984, 50 CacheSize 5000 - Reading 100000 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1468, 1468, 1546, 1601, 1601, 4 Oak-Segment-Tar , 10, 3340, 3345, 3661, 3990, 4011, 20 Oak-Segment-Tar , 20, 6932, 7009, 7262, 7318, 7342, 20 Oak-Segment-Tar , 50, 14969, 15354, 16141, 16470, 16500, 50 CacheSize 5000 - Reading 100000 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1390, 1390, 1448, 1599, 1599, 4 Oak-Segment-Tar , 10, 2974, 2989, 3079, 3158, 3168, 20 Oak-Segment-Tar , 20, 6215, 6428, 6653, 6720, 6797, 20 Oak-Segment-Tar , 50, 14216, 14630, 15221, 15410, 15468, 50 CacheSize 5000 - Reading 100000 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1354, 1354, 1404, 1501, 1501, 4 Oak-Segment-Tar , 10, 2930, 2939, 3070, 3222, 3235, 20 Oak-Segment-Tar , 20, 6440, 6558, 6710, 6791, 6809, 20 Oak-Segment-Tar , 50, 14035, 14645, 15237, 15411, 15474, 50 CacheSize 5000 - Reading 100000 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1333, 1333, 1380, 1437, 1437, 4 Oak-Segment-Tar , 10, 3045, 3085, 3153, 3206, 3211, 20 Oak-Segment-Tar , 20, 6600, 6654, 6832, 6959, 7022, 20 Oak-Segment-Tar , 50, 14244, 14874, 15719, 15923, 16016, 50 CacheSize 5000 - Reading 100000 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1380, 1380, 1403, 1459, 1459, 4 Oak-Segment-Tar , 10, 3045, 3059, 3203, 3314, 3324, 20 Oak-Segment-Tar , 20, 6474, 6609, 6738, 6804, 6818, 20 Oak-Segment-Tar , 50, 15102, 15232, 15651, 15839, 15939, 50 CacheSize 5000 - Reading 100000 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1424, 1424, 1442, 1456, 1456, 4 Oak-Segment-Tar , 10, 3103, 3105, 3231, 3350, 3359, 20 Oak-Segment-Tar , 20, 6541, 6879, 7053, 7129, 7149, 20 Oak-Segment-Tar , 50, 13983, 15127, 15815, 16144, 16278, 50 CacheSize 5000 - Reading 100000 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1394, 1394, 1419, 1709, 1709, 4 Oak-Segment-Tar , 10, 3162, 3164, 3268, 3446, 3453, 20 Oak-Segment-Tar , 20, 6565, 6701, 6849, 7022, 7069, 20 Oak-Segment-Tar , 50, 14010, 15161, 15637, 15849, 15896, 50 CacheSize 5000 - Reading 100000 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1343, 1343, 1377, 1458, 1458, 4 Oak-Segment-Tar , 10, 3066, 3073, 3219, 3359, 3364, 20 Oak-Segment-Tar , 20, 6429, 6436, 6605, 6712, 6746, 20 Oak-Segment-Tar , 50, 13986, 14856, 15605, 15752, 15809, 50 CacheSize 5000 - Reading 100000 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1383, 1383, 1414, 1442, 1442, 4 Oak-Segment-Tar , 10, 3146, 3174, 3215, 3272, 3304, 20 Oak-Segment-Tar , 20, 6645, 6793, 6997, 7052, 7054, 20 Oak-Segment-Tar , 50, 14457, 14847, 15582, 15783, 15950, 50 CacheSize 5000 - Reading 100000 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1405, 1405, 1434, 1578, 1578, 4 Oak-Segment-Tar , 10, 3135, 3147, 3257, 3351, 3360, 20 Oak-Segment-Tar , 20, 6473, 6731, 6943, 7019, 7022, 20 Oak-Segment-Tar , 50, 14259, 14741, 15679, 15969, 16009, 50 CacheSize 5000 - Reading 100000 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1416, 1416, 1466, 1489, 1489, 4 Oak-Segment-Tar , 10, 3037, 3043, 3094, 3183, 3190, 20 Oak-Segment-Tar , 20, 6473, 6591, 6784, 6816, 6829, 20 Oak-Segment-Tar , 50, 13871, 14635, 15425, 15724, 15804, 50 CacheSize 5000 - Reading 100000 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1486, 1486, 1501, 1583, 1583, 4 Oak-Segment-Tar , 10, 3304, 3308, 3362, 3381, 3407, 20 Oak-Segment-Tar , 20, 6950, 6971, 7291, 7389, 7410, 20 Oak-Segment-Tar , 50, 14961, 15646, 16361, 16705, 16825, 50 CacheSize 5000 - Reading 100000 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1782, 1782, 1799, 1823, 1823, 3 Oak-Segment-Tar , 10, 4101, 4164, 4317, 4453, 4470, 20 Oak-Segment-Tar , 20, 8884, 9091, 9212, 9305, 9338, 20 Oak-Segment-Tar , 50, 18702, 20008, 20800, 21195, 21338, 50 CacheSize 5000 - Reading 100000 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2702, 2702, 2710, 2717, 2717, 2 Oak-Segment-Tar , 10, 6627, 6630, 6722, 6732, 6732, 10 Oak-Segment-Tar , 20, 12396, 12434, 12632, 12792, 12809, 20 Oak-Segment-Tar , 50, 24143, 27302, 28385, 29029, 29064, 50 CacheSize 5000 - Reading 100000 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 13076, 13076, 13076, 13076, 13076, 1 Oak-Segment-Tar , 10, 28159, 28190, 28615, 28735, 28739, 10 Oak-Segment-Tar , 20, 55186, 55542, 56322, 56657, 56674, 20 Oak-Segment-Tar , 50, 154966, 158965, 161489, 162781, 162929, 50 CacheSize 5000 - Reading 100000 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 44990, 44990, 44990, 44990, 44990, 1 Oak-Segment-Tar , 10, 140302, 140323, 140805, 141002, 141009, 10 Oak-Segment-Tar , 20, 260027, 261951, 264246, 265680, 265954, 20 Oak-Segment-Tar , 50, 577916, 590621, 600258, 605853, 607303, 50 CacheSize 10000 - Reading 100000 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1314, 1314, 1415, 1748, 1748, 4 Oak-Segment-Tar , 10, 2887, 2896, 3003, 3115, 3125, 20 Oak-Segment-Tar , 20, 6199, 6237, 6477, 6573, 6593, 20 Oak-Segment-Tar , 50, 14036, 14646, 15177, 15394, 15454, 50 CacheSize 10000 - Reading 100000 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1346, 1346, 1381, 1495, 1495, 4 Oak-Segment-Tar , 10, 3068, 3077, 3182, 3253, 3259, 20 Oak-Segment-Tar , 20, 6525, 6689, 6882, 6990, 7035, 20 Oak-Segment-Tar , 50, 14913, 15119, 15682, 15896, 15938, 50 CacheSize 10000 - Reading 100000 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1355, 1355, 1372, 1397, 1397, 4 Oak-Segment-Tar , 10, 2967, 2971, 3074, 3171, 3177, 20 Oak-Segment-Tar , 20, 6587, 6593, 6785, 6858, 6866, 20 Oak-Segment-Tar , 50, 14367, 14505, 15323, 15603, 15660, 50 CacheSize 10000 - Reading 100000 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1401, 1401, 1487, 1644, 1644, 4 Oak-Segment-Tar , 10, 3119, 3162, 3252, 3364, 3374, 20 Oak-Segment-Tar , 20, 6479, 6872, 6944, 7037, 7084, 20 Oak-Segment-Tar , 50, 14781, 15321, 16080, 16357, 16419, 50 CacheSize 10000 - Reading 100000 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1375, 1375, 1391, 1420, 1420, 4 Oak-Segment-Tar , 10, 2943, 3016, 3087, 3210, 3240, 20 Oak-Segment-Tar , 20, 6293, 6382, 6706, 6810, 6845, 20 Oak-Segment-Tar , 50, 13315, 14673, 15341, 15617, 15677, 50 CacheSize 10000 - Reading 100000 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1351, 1351, 1398, 1460, 1460, 4 Oak-Segment-Tar , 10, 2992, 3076, 3177, 3248, 3255, 20 Oak-Segment-Tar , 20, 6593, 6605, 6827, 6953, 6993, 20 Oak-Segment-Tar , 50, 14297, 14760, 15381, 15649, 15668, 50 CacheSize 10000 - Reading 100000 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1403, 1403, 1431, 1460, 1460, 4 Oak-Segment-Tar , 10, 2980, 2987, 3134, 3274, 3275, 20 Oak-Segment-Tar , 20, 6671, 6714, 6809, 6931, 6971, 20 Oak-Segment-Tar , 50, 14117, 14632, 15644, 15827, 15896, 50 CacheSize 10000 - Reading 100000 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1354, 1354, 1381, 1428, 1428, 4 Oak-Segment-Tar , 10, 3022, 3026, 3090, 3155, 3160, 20 Oak-Segment-Tar , 20, 6190, 6353, 6659, 6777, 6800, 20 Oak-Segment-Tar , 50, 14095, 14617, 15154, 15337, 15384, 50 CacheSize 10000 - Reading 100000 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1383, 1383, 1467, 1491, 1491, 4 Oak-Segment-Tar , 10, 3021, 3025, 3183, 3334, 3336, 20 Oak-Segment-Tar , 20, 6481, 6503, 6689, 6831, 6924, 20 Oak-Segment-Tar , 50, 14945, 15502, 15930, 16132, 16212, 50 CacheSize 10000 - Reading 100000 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1383, 1383, 1411, 1455, 1455, 4 Oak-Segment-Tar , 10, 2987, 3070, 3158, 3217, 3226, 20 Oak-Segment-Tar , 20, 6633, 6708, 6771, 6865, 6872, 20 Oak-Segment-Tar , 50, 14349, 14862, 15557, 15797, 15918, 50 CacheSize 10000 - Reading 100000 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1352, 1352, 1409, 1480, 1480, 4 Oak-Segment-Tar , 10, 2854, 2866, 2999, 3119, 3139, 20 Oak-Segment-Tar , 20, 6347, 6354, 6531, 6683, 6692, 20 Oak-Segment-Tar , 50, 13417, 14063, 14783, 15071, 15099, 50 CacheSize 10000 - Reading 100000 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1404, 1404, 1413, 1500, 1500, 4 Oak-Segment-Tar , 10, 3120, 3138, 3559, 4069, 4104, 20 Oak-Segment-Tar , 20, 6515, 6583, 6880, 6972, 6988, 20 Oak-Segment-Tar , 50, 14035, 15043, 15705, 15976, 16044, 50 CacheSize 10000 - Reading 100000 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1350, 1350, 1435, 1699, 1699, 4 Oak-Segment-Tar , 10, 2891, 3064, 3134, 3182, 3191, 20 Oak-Segment-Tar , 20, 6455, 6467, 6634, 6735, 6784, 20 Oak-Segment-Tar , 50, 14154, 14845, 15737, 16122, 16185, 50 CacheSize 10000 - Reading 100000 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1423, 1423, 1455, 1492, 1492, 4 Oak-Segment-Tar , 10, 3096, 3105, 3188, 3228, 3249, 20 Oak-Segment-Tar , 20, 6689, 6720, 6927, 7023, 7054, 20 Oak-Segment-Tar , 50, 13748, 14608, 15553, 15846, 15889, 50 CacheSize 10000 - Reading 100000 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1310, 1310, 1382, 1447, 1447, 4 Oak-Segment-Tar , 10, 2991, 3019, 3110, 3170, 3175, 20 Oak-Segment-Tar , 20, 6321, 6425, 6651, 6759, 6766, 20 Oak-Segment-Tar , 50, 13645, 14437, 15345, 15627, 15646, 50 CacheSize 10000 - Reading 100000 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1336, 1336, 1387, 1426, 1426, 4 Oak-Segment-Tar , 10, 2951, 2981, 3114, 3172, 3173, 20 Oak-Segment-Tar , 20, 6157, 6334, 6628, 6747, 6793, 20 Oak-Segment-Tar , 50, 13247, 14210, 14986, 15364, 15447, 50 CacheSize 10000 - Reading 100000 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1538, 1538, 1592, 1657, 1657, 4 Oak-Segment-Tar , 10, 3369, 3390, 3434, 3471, 3476, 20 Oak-Segment-Tar , 20, 6718, 6932, 7178, 7257, 7265, 20 Oak-Segment-Tar , 50, 15905, 16137, 16834, 17172, 17217, 50 CacheSize 10000 - Reading 100000 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1438, 1438, 1503, 1539, 1539, 4 Oak-Segment-Tar , 10, 3288, 3316, 3391, 3486, 3495, 20 Oak-Segment-Tar , 20, 6792, 6811, 6945, 7082, 7113, 20 Oak-Segment-Tar , 50, 14457, 15550, 16475, 16790, 16945, 50 CacheSize 10000 - Reading 100000 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1395, 1395, 1449, 1484, 1484, 4 Oak-Segment-Tar , 10, 3213, 3228, 3343, 3545, 3554, 20 Oak-Segment-Tar , 20, 6594, 6604, 6748, 6863, 6876, 20 Oak-Segment-Tar , 50, 14678, 15082, 16135, 16372, 16666, 50 CacheSize 10000 - Reading 100000 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 47326, 47326, 47326, 47326, 47326, 1 Oak-Segment-Tar , 10, 156343, 156352, 156930, 157855, 157857, 10 Oak-Segment-Tar , 20, 280227, 281062, 288121, 290002, 291201, 20 Oak-Segment-Tar , 50, 643470, 648793, 664763, 672923, 674156, 50 CacheSize 50000 - Reading 100000 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1386, 1386, 1430, 1434, 1434, 4 Oak-Segment-Tar , 10, 3172, 3192, 3223, 3266, 3279, 20 Oak-Segment-Tar , 20, 6833, 6954, 7132, 7211, 7226, 20 Oak-Segment-Tar , 50, 15509, 15882, 16407, 16674, 16737, 50 CacheSize 50000 - Reading 100000 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1355, 1355, 1359, 1465, 1465, 4 Oak-Segment-Tar , 10, 3038, 3052, 3203, 3379, 3381, 20 Oak-Segment-Tar , 20, 6532, 6820, 6951, 7088, 7104, 20 Oak-Segment-Tar , 50, 14590, 15245, 15692, 15991, 16047, 50 CacheSize 50000 - Reading 100000 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1337, 1337, 1392, 1403, 1403, 4 Oak-Segment-Tar , 10, 3143, 3151, 3308, 3464, 3468, 20 Oak-Segment-Tar , 20, 6534, 6601, 7009, 7047, 7047, 20 Oak-Segment-Tar , 50, 14329, 15041, 15655, 15962, 16098, 50 CacheSize 50000 - Reading 100000 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1434, 1434, 1453, 1463, 1463, 4 Oak-Segment-Tar , 10, 3214, 3227, 3339, 3420, 3429, 20 Oak-Segment-Tar , 20, 6512, 6651, 7071, 7153, 7169, 20 Oak-Segment-Tar , 50, 15133, 15589, 16183, 16412, 16465, 50 CacheSize 50000 - Reading 100000 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1388, 1388, 1443, 1469, 1469, 4 Oak-Segment-Tar , 10, 2871, 2915, 3082, 3222, 3247, 20 Oak-Segment-Tar , 20, 6508, 6516, 6653, 6771, 6779, 20 Oak-Segment-Tar , 50, 14004, 14887, 15420, 15550, 15653, 50 CacheSize 50000 - Reading 100000 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1365, 1365, 1376, 1390, 1390, 4 Oak-Segment-Tar , 10, 3110, 3112, 3159, 3231, 3239, 20 Oak-Segment-Tar , 20, 6423, 6581, 6764, 6868, 6891, 20 Oak-Segment-Tar , 50, 14018, 14598, 15211, 15424, 15499, 50 CacheSize 50000 - Reading 100000 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1324, 1324, 1395, 1456, 1456, 4 Oak-Segment-Tar , 10, 2897, 2922, 2992, 3079, 3089, 20 Oak-Segment-Tar , 20, 6539, 6593, 6742, 6816, 6852, 20 Oak-Segment-Tar , 50, 13938, 14902, 15315, 15560, 15616, 50 CacheSize 50000 - Reading 100000 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1325, 1325, 1332, 1402, 1402, 4 Oak-Segment-Tar , 10, 2967, 3008, 3128, 3200, 3203, 20 Oak-Segment-Tar , 20, 6511, 6534, 6816, 6871, 6944, 20 Oak-Segment-Tar , 50, 13716, 14514, 15145, 15396, 15414, 50 CacheSize 50000 - Reading 100000 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1417, 1417, 1471, 1802, 1802, 4 Oak-Segment-Tar , 10, 2976, 2981, 3040, 3082, 3084, 20 Oak-Segment-Tar , 20, 6333, 6386, 6598, 6689, 6716, 20 Oak-Segment-Tar , 50, 14100, 14395, 15065, 15404, 15496, 50 CacheSize 50000 - Reading 100000 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1390, 1390, 1413, 1516, 1516, 4 Oak-Segment-Tar , 10, 3092, 3102, 3286, 3422, 3438, 20 Oak-Segment-Tar , 20, 6587, 6646, 6800, 6902, 6910, 20 Oak-Segment-Tar , 50, 14193, 15120, 15717, 16022, 16136, 50 CacheSize 50000 - Reading 100000 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1385, 1385, 1416, 1426, 1426, 4 Oak-Segment-Tar , 10, 2848, 2923, 3047, 3102, 3107, 20 Oak-Segment-Tar , 20, 6362, 6550, 6710, 6794, 6813, 20 Oak-Segment-Tar , 50, 13886, 14600, 15336, 15602, 15659, 50 CacheSize 50000 - Reading 100000 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1335, 1335, 1341, 1406, 1406, 4 Oak-Segment-Tar , 10, 3049, 3076, 3195, 3297, 3318, 20 Oak-Segment-Tar , 20, 6452, 6715, 6962, 7065, 7088, 20 Oak-Segment-Tar , 50, 14040, 14810, 15590, 15814, 15882, 50 CacheSize 50000 - Reading 100000 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1506, 1506, 1536, 1600, 1600, 4 Oak-Segment-Tar , 10, 2991, 3091, 3174, 3215, 3225, 20 Oak-Segment-Tar , 20, 6358, 6463, 6715, 6761, 6806, 20 Oak-Segment-Tar , 50, 14394, 14922, 15655, 15903, 15976, 50 CacheSize 50000 - Reading 100000 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1480, 1480, 1589, 1680, 1680, 4 Oak-Segment-Tar , 10, 3093, 3132, 3207, 3263, 3295, 20 Oak-Segment-Tar , 20, 6662, 6669, 6797, 6865, 6874, 20 Oak-Segment-Tar , 50, 13962, 14769, 15459, 15789, 15831, 50 CacheSize 50000 - Reading 100000 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1371, 1371, 1454, 1558, 1558, 4 Oak-Segment-Tar , 10, 3084, 3091, 3172, 3288, 3295, 20 Oak-Segment-Tar , 20, 6604, 6659, 6783, 6874, 6879, 20 Oak-Segment-Tar , 50, 14589, 14771, 15675, 15923, 15972, 50 CacheSize 50000 - Reading 100000 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1396, 1396, 1441, 1508, 1508, 4 Oak-Segment-Tar , 10, 3136, 3139, 3181, 3207, 3219, 20 Oak-Segment-Tar , 20, 6509, 6619, 6891, 6979, 7023, 20 Oak-Segment-Tar , 50, 14120, 14744, 15459, 15787, 15870, 50 CacheSize 50000 - Reading 100000 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1466, 1466, 1506, 1557, 1557, 4 Oak-Segment-Tar , 10, 3379, 3389, 3447, 3623, 3630, 20 Oak-Segment-Tar , 20, 6735, 6914, 7104, 7209, 7265, 20 Oak-Segment-Tar , 50, 14376, 15358, 16370, 16802, 16982, 50 CacheSize 50000 - Reading 100000 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1457, 1457, 1524, 1550, 1550, 4 Oak-Segment-Tar , 10, 3257, 3330, 3425, 3501, 3503, 20 Oak-Segment-Tar , 20, 6656, 6757, 6981, 7096, 7131, 20 Oak-Segment-Tar , 50, 14220, 14741, 16427, 16883, 17051, 50 CacheSize 50000 - Reading 100000 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1392, 1392, 1481, 1626, 1626, 4 Oak-Segment-Tar , 10, 3263, 3264, 3408, 3537, 3547, 20 Oak-Segment-Tar , 20, 6537, 6559, 6904, 7052, 7067, 20 Oak-Segment-Tar , 50, 14223, 15171, 16206, 16541, 16596, 50 CacheSize 50000 - Reading 100000 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1436, 1436, 1580, 1846, 1846, 4 Oak-Segment-Tar , 10, 3329, 3342, 3403, 3545, 3561, 20 Oak-Segment-Tar , 20, 6768, 6787, 7088, 7167, 7171, 20 Oak-Segment-Tar , 50, 15222, 15601, 16320, 16744, 16828, 50