Reading 10000 items with 1 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 1 --numberOfGroups 1 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5756 All paths: 123545 Oak-Segment-Tar 1 143 146 158 196 226 31 165 Oak-Segment-Tar 10 284 307 333 410 482 150 346 Oak-Segment-Tar 20 473 585 685 787 941 155 684 Profiler: top 5 stack trace(s) of of 16918 ms of 3855 thread dumps: 3855/29915 (12%): 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) 1240/29915 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1052/29915 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 904/29915 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 875/29915 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 26%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.cache . Reading 10000 items with 1 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 1 --numberOfGroups 10 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 6238 All paths: 123545 Oak-Segment-Tar 1 150 153 162 206 226 29 174 Oak-Segment-Tar 10 244 307 328 356 420 156 329 Oak-Segment-Tar 20 501 598 695 795 878 155 694 Profiler: top 5 stack trace(s) of of 16981 ms of 3779 thread dumps: 3779/28679 (13%): 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) 1360/28679 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1321/28679 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1013/28679 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 889/28679 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 26%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.cache 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 1 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 1 --numberOfGroups 100 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5604 All paths: 123545 Oak-Segment-Tar 1 148 149 160 206 238 30 169 Oak-Segment-Tar 10 259 340 437 490 588 121 420 Oak-Segment-Tar 20 429 575 689 817 886 153 690 Profiler: top 5 stack trace(s) of of 16859 ms of 3728 thread dumps: 3728/28337 (13%): 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) 1439/28337 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1295/28337 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 894/28337 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 854/28337 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 24%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 1 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 1 --numberOfGroups 500 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5920 All paths: 123545 Oak-Segment-Tar 1 155 157 165 200 237 29 173 Oak-Segment-Tar 10 270 332 367 460 533 136 381 Oak-Segment-Tar 20 507 666 747 846 966 140 752 Profiler: top 5 stack trace(s) of of 16776 ms of 3687 thread dumps: 3687/27940 (13%): 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) 1454/27940 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1442/27940 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 866/27940 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 776/27940 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 26%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.cache 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 1 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 1 --numberOfGroups 1000 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5786 All paths: 123545 Oak-Segment-Tar 1 155 155 167 244 261 28 179 Oak-Segment-Tar 10 321 349 372 389 412 140 371 Oak-Segment-Tar 20 540 680 781 877 939 139 778 Profiler: top 5 stack trace(s) of of 16900 ms of 3704 thread dumps: 3704/27959 (13%): 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) 1056/27959 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1056/27959 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 892/27959 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 868/27959 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 25%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.cache . Reading 10000 items with 3 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 3 --numberOfGroups 1 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5974 All paths: 123545 Oak-Segment-Tar 1 146 147 152 168 193 33 155 Oak-Segment-Tar 10 296 313 337 430 479 150 351 Oak-Segment-Tar 20 516 633 764 882 1036 140 764 Profiler: top 5 stack trace(s) of of 16965 ms of 3750 thread dumps: 3750/28004 (13%): 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) 1452/28004 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1289/28004 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 882/28004 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 858/28004 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 38%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 3 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 3 --numberOfGroups 10 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 7499 All paths: 123545 Oak-Segment-Tar 1 175 176 195 307 327 23 223 Oak-Segment-Tar 10 323 357 402 467 512 130 409 Oak-Segment-Tar 20 541 643 800 956 1098 135 801 Profiler: top 5 stack trace(s) of of 17230 ms of 3619 thread dumps: 3619/27202 (13%): 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) 1317/27202 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1245/27202 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 824/27202 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 802/27202 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 36%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 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 . Reading 10000 items with 3 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 3 --numberOfGroups 100 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 6549 All paths: 123545 Oak-Segment-Tar 1 168 171 189 198 228 27 188 Oak-Segment-Tar 10 339 413 469 559 617 110 476 Oak-Segment-Tar 20 525 664 764 913 1062 139 774 Profiler: top 5 stack trace(s) of of 16898 ms of 3555 thread dumps: 3555/26320 (13%): 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) 1415/26320 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1270/26320 (4%): 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 870/26320 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 850/26320 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 38%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 3 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 3 --numberOfGroups 500 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5877 All paths: 123545 Oak-Segment-Tar 1 149 154 169 187 188 30 171 Oak-Segment-Tar 10 303 340 361 430 490 140 372 Oak-Segment-Tar 20 465 636 775 896 979 136 768 Profiler: top 5 stack trace(s) of of 16883 ms of 3704 thread dumps: 3704/27183 (13%): 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) 1364/27183 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1282/27183 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 851/27183 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 849/27183 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 27%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 3 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 3 --numberOfGroups 1000 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 6498 All paths: 123545 Oak-Segment-Tar 1 155 157 163 188 192 30 169 Oak-Segment-Tar 10 321 341 368 402 445 140 370 Oak-Segment-Tar 20 548 661 792 928 1015 136 793 Profiler: top 5 stack trace(s) of of 16928 ms of 3654 thread dumps: 3654/26340 (13%): 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) 1138/26340 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1082/26340 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 848/26340 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 790/26340 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 24%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.cache 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 5 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 5 --numberOfGroups 1 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5935 All paths: 123545 Oak-Segment-Tar 1 144 146 155 169 178 32 158 Oak-Segment-Tar 10 237 312 333 372 407 151 338 Oak-Segment-Tar 20 413 599 718 811 904 146 714 Profiler: top 5 stack trace(s) of of 16715 ms of 3755 thread dumps: 3755/27851 (13%): 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) 1435/27851 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1390/27851 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1032/27851 (3%): at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:428) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:240) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1031/27851 (3%): at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:428) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:240) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 37%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 5%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 5 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 5 --numberOfGroups 10 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5790 All paths: 123545 Oak-Segment-Tar 1 151 153 159 178 188 31 163 Oak-Segment-Tar 10 271 318 345 376 451 149 347 Oak-Segment-Tar 20 386 651 733 821 882 141 731 Profiler: top 5 stack trace(s) of of 16781 ms of 3706 thread dumps: 3706/26755 (13%): 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) 1331/26755 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1247/26755 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 843/26755 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 800/26755 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 27%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.cache 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 5 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 5 --numberOfGroups 100 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5924 All paths: 123545 Oak-Segment-Tar 1 154 155 164 191 201 30 169 Oak-Segment-Tar 10 298 326 363 449 512 139 376 Oak-Segment-Tar 20 482 655 763 889 1017 139 770 Profiler: top 5 stack trace(s) of of 16958 ms of 3666 thread dumps: 3666/27084 (13%): 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) 1376/27084 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1209/27084 (4%): 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 847/27084 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 830/27084 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 38%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 5 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 5 --numberOfGroups 500 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 6433 All paths: 123545 Oak-Segment-Tar 1 159 160 172 193 202 29 174 Oak-Segment-Tar 10 339 356 379 400 415 140 378 Oak-Segment-Tar 20 440 689 828 943 1094 128 817 Profiler: top 5 stack trace(s) of of 16987 ms of 3744 thread dumps: 3744/27034 (13%): 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) 800/27034 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 787/27034 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 616/27034 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 601/27034 (2%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$100(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 36%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 4%: app//org.apache.jackrabbit.oak.namepath.impl . Reading 10000 items with 5 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 5 --numberOfGroups 1000 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 6636 All paths: 123545 Oak-Segment-Tar 1 163 166 180 209 221 28 183 Oak-Segment-Tar 10 321 382 411 457 476 127 411 Oak-Segment-Tar 20 646 790 886 998 1169 120 886 Profiler: top 5 stack trace(s) of of 16931 ms of 3573 thread dumps: 3573/26437 (13%): 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) 855/26437 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 828/26437 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 759/26437 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 712/26437 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 37%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 5%: app//org.apache.jackrabbit.oak.cache . Reading 10000 items with 8 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 8 --numberOfGroups 1 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5880 All paths: 123545 Oak-Segment-Tar 1 147 152 161 182 195 31 164 Oak-Segment-Tar 10 298 316 343 379 475 150 347 Oak-Segment-Tar 20 490 631 751 878 1097 139 755 Profiler: top 5 stack trace(s) of of 16783 ms of 3745 thread dumps: 3745/28219 (13%): 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) 926/28219 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 915/28219 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 870/28219 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 845/28219 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 36%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 3%: app//org.apache.jackrabbit.oak.namepath.impl . Reading 10000 items with 8 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 8 --numberOfGroups 10 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 6193 All paths: 123545 Oak-Segment-Tar 1 154 155 165 186 193 30 168 Oak-Segment-Tar 10 227 330 370 450 506 133 382 Oak-Segment-Tar 20 588 681 789 904 992 140 785 Profiler: top 5 stack trace(s) of of 17115 ms of 3733 thread dumps: 3733/27706 (13%): 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) 1421/27706 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1324/27706 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 877/27706 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 761/27706 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 25%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 8 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 8 --numberOfGroups 100 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5894 All paths: 123545 Oak-Segment-Tar 1 154 155 168 188 191 30 169 Oak-Segment-Tar 10 215 327 353 393 491 142 357 Oak-Segment-Tar 20 477 626 734 861 1058 143 741 Profiler: top 5 stack trace(s) of of 16728 ms of 3696 thread dumps: 3696/27294 (13%): 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) 1284/27294 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1199/27294 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 842/27294 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 711/27294 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 25%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.cache 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 8 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 8 --numberOfGroups 500 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5726 All paths: 123545 Oak-Segment-Tar 1 164 169 176 191 205 28 179 Oak-Segment-Tar 10 332 364 387 524 594 130 406 Oak-Segment-Tar 20 374 706 835 935 1141 127 818 Profiler: top 5 stack trace(s) of of 16897 ms of 3676 thread dumps: 3676/27240 (13%): 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) 832/27240 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 782/27240 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 773/27240 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 718/27240 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 35%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 8 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 8 --numberOfGroups 1000 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5868 All paths: 123545 Oak-Segment-Tar 1 174 177 191 212 227 26 193 Oak-Segment-Tar 10 390 418 456 544 563 110 464 Oak-Segment-Tar 20 658 780 928 1053 1248 119 919 Profiler: top 5 stack trace(s) of of 16972 ms of 3538 thread dumps: 3538/23252 (15%): 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) 971/23252 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 883/23252 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 614/23252 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 528/23252 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 28%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 10 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 10 --numberOfGroups 1 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5631 All paths: 123545 Oak-Segment-Tar 1 145 149 158 173 180 32 160 Oak-Segment-Tar 10 227 315 337 357 373 152 335 Oak-Segment-Tar 20 384 573 722 847 1012 146 716 Profiler: top 5 stack trace(s) of of 16903 ms of 3763 thread dumps: 3763/26844 (14%): 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) 1357/26844 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1357/26844 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 822/26844 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 788/26844 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 25%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 10 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 10 --numberOfGroups 10 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 6027 All paths: 123545 Oak-Segment-Tar 1 142 144 163 176 181 32 160 Oak-Segment-Tar 10 296 309 329 410 456 150 341 Oak-Segment-Tar 20 523 594 714 812 883 152 711 Profiler: top 5 stack trace(s) of of 16986 ms of 3703 thread dumps: 3703/27638 (13%): 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) 929/27638 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 849/27638 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 830/27638 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 821/27638 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 34%: app//org.apache.jackrabbit.oak.segment 17%: 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 . Reading 10000 items with 10 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 10 --numberOfGroups 100 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 6092 All paths: 123545 Oak-Segment-Tar 1 158 160 178 204 209 28 181 Oak-Segment-Tar 10 308 340 373 438 491 139 378 Oak-Segment-Tar 20 516 670 760 864 964 139 766 Profiler: top 5 stack trace(s) of of 16957 ms of 3689 thread dumps: 3689/27433 (13%): 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) 850/27433 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 839/27433 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 617/27433 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 608/27433 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 33%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 10 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 10 --numberOfGroups 500 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5742 All paths: 123545 Oak-Segment-Tar 1 175 176 180 201 224 27 185 Oak-Segment-Tar 10 368 383 399 446 470 130 404 Oak-Segment-Tar 20 530 739 854 963 1092 128 843 Profiler: top 5 stack trace(s) of of 16983 ms of 3675 thread dumps: 3675/27297 (13%): 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) 1247/27297 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1155/27297 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 794/27297 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 788/27297 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 38%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 10 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 10 --numberOfGroups 1000 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5577 All paths: 123545 Oak-Segment-Tar 1 180 184 204 217 233 25 202 Oak-Segment-Tar 10 379 426 452 509 690 110 466 Oak-Segment-Tar 20 647 785 926 1088 1218 117 931 Profiler: top 5 stack trace(s) of of 17027 ms of 3569 thread dumps: 3569/23044 (15%): 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) 995/23044 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 911/23044 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 603/23044 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 525/23044 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 27%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 15%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 11 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 11 --numberOfGroups 1 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5899 All paths: 123545 Oak-Segment-Tar 1 146 149 170 185 188 30 169 Oak-Segment-Tar 10 294 313 335 407 484 150 345 Oak-Segment-Tar 20 437 609 704 804 868 150 705 Profiler: top 5 stack trace(s) of of 16914 ms of 3778 thread dumps: 3778/27243 (13%): 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) 843/27243 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 817/27243 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 812/27243 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 782/27243 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 35%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 11 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 11 --numberOfGroups 10 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5405 All paths: 123545 Oak-Segment-Tar 1 146 152 162 183 185 31 164 Oak-Segment-Tar 10 296 314 344 408 459 150 348 Oak-Segment-Tar 20 372 657 732 829 940 142 733 Profiler: top 5 stack trace(s) of of 16776 ms of 3730 thread dumps: 3730/27555 (13%): 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) 1388/27555 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1290/27555 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 870/27555 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 838/27555 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 27%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 11 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 11 --numberOfGroups 100 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5750 All paths: 123545 Oak-Segment-Tar 1 179 179 190 214 221 26 194 Oak-Segment-Tar 10 386 402 426 500 537 120 439 Oak-Segment-Tar 20 467 651 812 917 1000 133 796 Profiler: top 5 stack trace(s) of of 16917 ms of 3614 thread dumps: 3614/26463 (13%): 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) 772/26463 (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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 718/26463 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 659/26463 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 531/26463 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 33%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 11 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 11 --numberOfGroups 500 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5882 All paths: 123545 Oak-Segment-Tar 1 282 289 331 371 376 16 328 Oak-Segment-Tar 10 417 839 968 1190 1253 51 1003 Oak-Segment-Tar 20 1552 1609 1823 2064 2218 60 1826 Profiler: top 5 stack trace(s) of of 17324 ms of 3033 thread dumps: 3033/21180 (14%): 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/21180 (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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 918/21180 (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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:156) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getGroupEntries(CompiledPermissionImpl.java:610) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1500(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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 781/21180 (3%): 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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 461/21180 (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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:156) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getGroupEntries(CompiledPermissionImpl.java:610) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1500(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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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: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:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 40%: app//org.apache.jackrabbit.oak.security.authorization.permission 22%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl 3%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 11 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 11 --numberOfGroups 1000 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5140 All paths: 123545 Oak-Segment-Tar 1 507 507 517 559 561 10 523 Oak-Segment-Tar 10 1513 1539 1834 2089 2141 30 1804 Oak-Segment-Tar 20 2788 3014 3397 3942 4230 40 3419 Profiler: top 5 stack trace(s) of of 19188 ms of 3016 thread dumps: 3416/21005 (16%): 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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 3016/21005 (14%): 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) 1166/21005 (5%): 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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1158/21005 (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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:156) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getGroupEntries(CompiledPermissionImpl.java:610) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1500(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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 571/21005 (2%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:254) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:441) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasChildNode(ReadOnlyBuilder.java:94) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasChild(AbstractTree.java:293) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:81) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 50%: app//org.apache.jackrabbit.oak.security.authorization.permission 18%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl 2%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 21 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 21 --numberOfGroups 1 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5299 All paths: 123545 Oak-Segment-Tar 1 140 141 143 147 205 35 146 Oak-Segment-Tar 10 184 302 314 330 343 161 314 Oak-Segment-Tar 20 406 542 665 768 860 160 660 Profiler: top 5 stack trace(s) of of 16800 ms of 3455 thread dumps: 3455/26382 (13%): 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) 1712/26382 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1530/26382 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 808/26382 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 796/26382 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 27%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.cache 13%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 10%: app//org.apache.jackrabbit.oak.security.authorization.permission . Reading 10000 items with 21 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 21 --numberOfGroups 10 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 6155 All paths: 123545 Oak-Segment-Tar 1 153 156 164 226 281 29 175 Oak-Segment-Tar 10 306 323 350 377 399 150 350 Oak-Segment-Tar 20 452 655 750 851 946 141 753 Profiler: top 5 stack trace(s) of of 17126 ms of 3374 thread dumps: 3374/25456 (13%): 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) 1273/25456 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1226/25456 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 762/25456 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 701/25456 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 26%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 21 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 21 --numberOfGroups 100 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 6275 All paths: 123545 Oak-Segment-Tar 1 176 179 190 220 253 26 195 Oak-Segment-Tar 10 374 401 419 505 538 120 432 Oak-Segment-Tar 20 456 706 839 940 1107 126 832 Profiler: top 5 stack trace(s) of of 16783 ms of 3281 thread dumps: 3281/25238 (13%): 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) 1221/25238 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1080/25238 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 702/25238 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 685/25238 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 26%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.security.authorization.permission 16%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 21 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 21 --numberOfGroups 500 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5592 All paths: 123545 Oak-Segment-Tar 1 298 303 316 358 363 16 322 Oak-Segment-Tar 10 520 760 939 1209 1251 55 957 Oak-Segment-Tar 20 1337 1660 1871 2049 2232 60 1851 Profiler: top 5 stack trace(s) of of 17473 ms of 3027 thread dumps: 3027/21868 (13%): 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) 1738/21868 (7%): 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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1123/21868 (5%): 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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:156) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getGroupEntries(CompiledPermissionImpl.java:610) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1500(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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 879/21868 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:80) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 574/21868 (2%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:254) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:441) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasChildNode(ReadOnlyBuilder.java:94) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasChild(AbstractTree.java:293) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:81) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 39%: app//org.apache.jackrabbit.oak.security.authorization.permission 26%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 5%: app//org.apache.jackrabbit.oak.plugins.tree.impl 2%: app//org.apache.jackrabbit.oak.cache . Reading 10000 items with 21 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 21 --numberOfGroups 1000 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 4893 All paths: 123545 Oak-Segment-Tar 1 473 473 495 553 555 10 502 Oak-Segment-Tar 10 1323 1414 1796 1966 2192 30 1737 Oak-Segment-Tar 20 2563 2670 3091 3814 3889 40 3170 Profiler: top 5 stack trace(s) of of 18440 ms of 2927 thread dumps: 2927/20754 (14%): 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) 2815/20754 (13%): 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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1324/20754 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:77) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 916/20754 (4%): 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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:156) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getGroupEntries(CompiledPermissionImpl.java:610) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1500(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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 716/20754 (3%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:254) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:441) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasChildNode(ReadOnlyBuilder.java:94) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasChild(AbstractTree.java:293) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:81) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 50%: app//org.apache.jackrabbit.oak.security.authorization.permission 19%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 4%: app//org.apache.jackrabbit.oak.cache 3%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 31 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 31 --numberOfGroups 1 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5283 All paths: 123545 Oak-Segment-Tar 1 146 147 151 167 208 33 154 Oak-Segment-Tar 10 311 319 330 347 361 160 331 Oak-Segment-Tar 20 455 607 685 775 861 157 688 Profiler: top 5 stack trace(s) of of 16965 ms of 3461 thread dumps: 3461/27492 (12%): 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) 951/27492 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 887/27492 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 884/27492 (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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 790/27492 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 31%: app//org.apache.jackrabbit.oak.segment 16%: 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.cache . Reading 10000 items with 31 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 31 --numberOfGroups 10 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5379 All paths: 123545 Oak-Segment-Tar 1 148 149 153 175 178 32 157 Oak-Segment-Tar 10 287 318 343 413 445 149 350 Oak-Segment-Tar 20 540 655 750 855 953 140 756 Profiler: top 5 stack trace(s) of of 16746 ms of 3353 thread dumps: 3353/26142 (12%): 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) 1361/26142 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1329/26142 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 780/26142 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 764/26142 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 26%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 31 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 31 --numberOfGroups 100 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5624 All paths: 123545 Oak-Segment-Tar 1 168 171 187 209 221 27 190 Oak-Segment-Tar 10 271 423 499 569 718 105 489 Oak-Segment-Tar 20 698 764 870 973 1084 120 867 Profiler: top 5 stack trace(s) of of 16842 ms of 3254 thread dumps: 3254/24433 (13%): 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) 1070/24433 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 985/24433 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 742/24433 (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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 658/24433 (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:184) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) 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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 25%: app//org.apache.jackrabbit.oak.segment 20%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 31 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 31 --numberOfGroups 500 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 6000 All paths: 123545 Oak-Segment-Tar 1 319 320 345 394 421 15 349 Oak-Segment-Tar 10 845 866 1022 1288 1332 50 1071 Oak-Segment-Tar 20 1621 1748 1935 2173 2333 60 1948 Profiler: top 5 stack trace(s) of of 17877 ms of 3014 thread dumps: 3014/22202 (13%): 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) 1807/22202 (8%): 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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 732/22202 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:77) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 696/22202 (3%): 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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:156) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getGroupEntries(CompiledPermissionImpl.java:610) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1500(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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 629/22202 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) 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:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 37%: app//org.apache.jackrabbit.oak.security.authorization.permission 21%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.cache 5%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 31 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 31 --numberOfGroups 1000 --csvFile HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv --concurrency 1,10,20 --report false HasPermissionHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # HasPermissionHasItemGetIte C min 10% 50% 90% max N mean Import deep tree: 5375 All paths: 123545 Oak-Segment-Tar 1 484 485 510 539 541 10 507 Oak-Segment-Tar 10 1312 1429 1760 2020 2134 30 1742 Oak-Segment-Tar 20 2457 2526 3069 3430 3962 40 3055 Profiler: top 5 stack trace(s) of of 18264 ms of 2810 thread dumps: 2810/19015 (14%): 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) 2150/19015 (11%): 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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 1259/19015 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:80) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 728/19015 (3%): 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:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:156) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getGroupEntries(CompiledPermissionImpl.java:610) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1500(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//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) 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:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) 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.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 644/19015 (3%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:254) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:441) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasChildNode(ReadOnlyBuilder.java:94) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasChild(AbstractTree.java:293) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:81) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:147) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getEntries(PermissionEntryProviderImpl.java:133) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:96) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.HasPermissionHasItemGetItemTest.additionalOperations(HasPermissionHasItemGetItemTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 49%: app//org.apache.jackrabbit.oak.security.authorization.permission 21%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 4%: app//org.apache.jackrabbit.oak.plugins.tree.impl 2%: app//org.apache.jackrabbit.oak.core . ----------------------------------------- Benchmark completed. see HasPermissionHasItemGetItemTest_cachestrategy_1_20200916_144644.csv for details: Benchmarks: HasPermissionHasItemGetItemTest Fixture: Oak-Segment-Tar Runtime: 5 Concurrency: 1,10,20 Profiling: true Items to Read: 10000 Number of ACEs per Group Principal: 1 3 5 8 10 11 21 31 Number of Groups: 1 10 100 500 1000 -------------------------------------- Reading 10000 items with 1 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 143, 146, 158, 196, 226, 31, 165 Oak-Segment-Tar , 10, 284, 307, 333, 410, 482, 150, 346 Oak-Segment-Tar , 20, 473, 585, 685, 787, 941, 155, 684 Reading 10000 items with 1 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 150, 153, 162, 206, 226, 29, 174 Oak-Segment-Tar , 10, 244, 307, 328, 356, 420, 156, 329 Oak-Segment-Tar , 20, 501, 598, 695, 795, 878, 155, 694 Reading 10000 items with 1 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 148, 149, 160, 206, 238, 30, 169 Oak-Segment-Tar , 10, 259, 340, 437, 490, 588, 121, 420 Oak-Segment-Tar , 20, 429, 575, 689, 817, 886, 153, 690 Reading 10000 items with 1 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 155, 157, 165, 200, 237, 29, 173 Oak-Segment-Tar , 10, 270, 332, 367, 460, 533, 136, 381 Oak-Segment-Tar , 20, 507, 666, 747, 846, 966, 140, 752 Reading 10000 items with 1 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 155, 155, 167, 244, 261, 28, 179 Oak-Segment-Tar , 10, 321, 349, 372, 389, 412, 140, 371 Oak-Segment-Tar , 20, 540, 680, 781, 877, 939, 139, 778 Reading 10000 items with 3 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 146, 147, 152, 168, 193, 33, 155 Oak-Segment-Tar , 10, 296, 313, 337, 430, 479, 150, 351 Oak-Segment-Tar , 20, 516, 633, 764, 882, 1036, 140, 764 Reading 10000 items with 3 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 175, 176, 195, 307, 327, 23, 223 Oak-Segment-Tar , 10, 323, 357, 402, 467, 512, 130, 409 Oak-Segment-Tar , 20, 541, 643, 800, 956, 1098, 135, 801 Reading 10000 items with 3 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 168, 171, 189, 198, 228, 27, 188 Oak-Segment-Tar , 10, 339, 413, 469, 559, 617, 110, 476 Oak-Segment-Tar , 20, 525, 664, 764, 913, 1062, 139, 774 Reading 10000 items with 3 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 149, 154, 169, 187, 188, 30, 171 Oak-Segment-Tar , 10, 303, 340, 361, 430, 490, 140, 372 Oak-Segment-Tar , 20, 465, 636, 775, 896, 979, 136, 768 Reading 10000 items with 3 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 155, 157, 163, 188, 192, 30, 169 Oak-Segment-Tar , 10, 321, 341, 368, 402, 445, 140, 370 Oak-Segment-Tar , 20, 548, 661, 792, 928, 1015, 136, 793 Reading 10000 items with 5 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 144, 146, 155, 169, 178, 32, 158 Oak-Segment-Tar , 10, 237, 312, 333, 372, 407, 151, 338 Oak-Segment-Tar , 20, 413, 599, 718, 811, 904, 146, 714 Reading 10000 items with 5 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 151, 153, 159, 178, 188, 31, 163 Oak-Segment-Tar , 10, 271, 318, 345, 376, 451, 149, 347 Oak-Segment-Tar , 20, 386, 651, 733, 821, 882, 141, 731 Reading 10000 items with 5 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 154, 155, 164, 191, 201, 30, 169 Oak-Segment-Tar , 10, 298, 326, 363, 449, 512, 139, 376 Oak-Segment-Tar , 20, 482, 655, 763, 889, 1017, 139, 770 Reading 10000 items with 5 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 159, 160, 172, 193, 202, 29, 174 Oak-Segment-Tar , 10, 339, 356, 379, 400, 415, 140, 378 Oak-Segment-Tar , 20, 440, 689, 828, 943, 1094, 128, 817 Reading 10000 items with 5 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 163, 166, 180, 209, 221, 28, 183 Oak-Segment-Tar , 10, 321, 382, 411, 457, 476, 127, 411 Oak-Segment-Tar , 20, 646, 790, 886, 998, 1169, 120, 886 Reading 10000 items with 8 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 147, 152, 161, 182, 195, 31, 164 Oak-Segment-Tar , 10, 298, 316, 343, 379, 475, 150, 347 Oak-Segment-Tar , 20, 490, 631, 751, 878, 1097, 139, 755 Reading 10000 items with 8 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 154, 155, 165, 186, 193, 30, 168 Oak-Segment-Tar , 10, 227, 330, 370, 450, 506, 133, 382 Oak-Segment-Tar , 20, 588, 681, 789, 904, 992, 140, 785 Reading 10000 items with 8 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 154, 155, 168, 188, 191, 30, 169 Oak-Segment-Tar , 10, 215, 327, 353, 393, 491, 142, 357 Oak-Segment-Tar , 20, 477, 626, 734, 861, 1058, 143, 741 Reading 10000 items with 8 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 164, 169, 176, 191, 205, 28, 179 Oak-Segment-Tar , 10, 332, 364, 387, 524, 594, 130, 406 Oak-Segment-Tar , 20, 374, 706, 835, 935, 1141, 127, 818 Reading 10000 items with 8 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 174, 177, 191, 212, 227, 26, 193 Oak-Segment-Tar , 10, 390, 418, 456, 544, 563, 110, 464 Oak-Segment-Tar , 20, 658, 780, 928, 1053, 1248, 119, 919 Reading 10000 items with 10 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 145, 149, 158, 173, 180, 32, 160 Oak-Segment-Tar , 10, 227, 315, 337, 357, 373, 152, 335 Oak-Segment-Tar , 20, 384, 573, 722, 847, 1012, 146, 716 Reading 10000 items with 10 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 142, 144, 163, 176, 181, 32, 160 Oak-Segment-Tar , 10, 296, 309, 329, 410, 456, 150, 341 Oak-Segment-Tar , 20, 523, 594, 714, 812, 883, 152, 711 Reading 10000 items with 10 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 158, 160, 178, 204, 209, 28, 181 Oak-Segment-Tar , 10, 308, 340, 373, 438, 491, 139, 378 Oak-Segment-Tar , 20, 516, 670, 760, 864, 964, 139, 766 Reading 10000 items with 10 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 175, 176, 180, 201, 224, 27, 185 Oak-Segment-Tar , 10, 368, 383, 399, 446, 470, 130, 404 Oak-Segment-Tar , 20, 530, 739, 854, 963, 1092, 128, 843 Reading 10000 items with 10 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 180, 184, 204, 217, 233, 25, 202 Oak-Segment-Tar , 10, 379, 426, 452, 509, 690, 110, 466 Oak-Segment-Tar , 20, 647, 785, 926, 1088, 1218, 117, 931 Reading 10000 items with 11 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 146, 149, 170, 185, 188, 30, 169 Oak-Segment-Tar , 10, 294, 313, 335, 407, 484, 150, 345 Oak-Segment-Tar , 20, 437, 609, 704, 804, 868, 150, 705 Reading 10000 items with 11 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 146, 152, 162, 183, 185, 31, 164 Oak-Segment-Tar , 10, 296, 314, 344, 408, 459, 150, 348 Oak-Segment-Tar , 20, 372, 657, 732, 829, 940, 142, 733 Reading 10000 items with 11 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 179, 179, 190, 214, 221, 26, 194 Oak-Segment-Tar , 10, 386, 402, 426, 500, 537, 120, 439 Oak-Segment-Tar , 20, 467, 651, 812, 917, 1000, 133, 796 Reading 10000 items with 11 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 282, 289, 331, 371, 376, 16, 328 Oak-Segment-Tar , 10, 417, 839, 968, 1190, 1253, 51, 1003 Oak-Segment-Tar , 20, 1552, 1609, 1823, 2064, 2218, 60, 1826 Reading 10000 items with 11 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 507, 507, 517, 559, 561, 10, 523 Oak-Segment-Tar , 10, 1513, 1539, 1834, 2089, 2141, 30, 1804 Oak-Segment-Tar , 20, 2788, 3014, 3397, 3942, 4230, 40, 3419 Reading 10000 items with 21 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 140, 141, 143, 147, 205, 35, 146 Oak-Segment-Tar , 10, 184, 302, 314, 330, 343, 161, 314 Oak-Segment-Tar , 20, 406, 542, 665, 768, 860, 160, 660 Reading 10000 items with 21 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 153, 156, 164, 226, 281, 29, 175 Oak-Segment-Tar , 10, 306, 323, 350, 377, 399, 150, 350 Oak-Segment-Tar , 20, 452, 655, 750, 851, 946, 141, 753 Reading 10000 items with 21 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 176, 179, 190, 220, 253, 26, 195 Oak-Segment-Tar , 10, 374, 401, 419, 505, 538, 120, 432 Oak-Segment-Tar , 20, 456, 706, 839, 940, 1107, 126, 832 Reading 10000 items with 21 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 298, 303, 316, 358, 363, 16, 322 Oak-Segment-Tar , 10, 520, 760, 939, 1209, 1251, 55, 957 Oak-Segment-Tar , 20, 1337, 1660, 1871, 2049, 2232, 60, 1851 Reading 10000 items with 21 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 473, 473, 495, 553, 555, 10, 502 Oak-Segment-Tar , 10, 1323, 1414, 1796, 1966, 2192, 30, 1737 Oak-Segment-Tar , 20, 2563, 2670, 3091, 3814, 3889, 40, 3170 Reading 10000 items with 31 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 146, 147, 151, 167, 208, 33, 154 Oak-Segment-Tar , 10, 311, 319, 330, 347, 361, 160, 331 Oak-Segment-Tar , 20, 455, 607, 685, 775, 861, 157, 688 Reading 10000 items with 31 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 148, 149, 153, 175, 178, 32, 157 Oak-Segment-Tar , 10, 287, 318, 343, 413, 445, 149, 350 Oak-Segment-Tar , 20, 540, 655, 750, 855, 953, 140, 756 Reading 10000 items with 31 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 168, 171, 187, 209, 221, 27, 190 Oak-Segment-Tar , 10, 271, 423, 499, 569, 718, 105, 489 Oak-Segment-Tar , 20, 698, 764, 870, 973, 1084, 120, 867 Reading 10000 items with 31 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 319, 320, 345, 394, 421, 15, 349 Oak-Segment-Tar , 10, 845, 866, 1022, 1288, 1332, 50, 1071 Oak-Segment-Tar , 20, 1621, 1748, 1935, 2173, 2333, 60, 1948 Reading 10000 items with 31 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # HasPermissionHasItemGetIte, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 484, 485, 510, 539, 541, 10, 507 Oak-Segment-Tar , 10, 1312, 1429, 1760, 2020, 2134, 30, 1742 Oak-Segment-Tar , 20, 2457, 2526, 3069, 3430, 3962, 40, 3055