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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5730 All paths: 123545 Oak-Segment-Tar 1 154 155 159 167 177 32 160 Oak-Segment-Tar 10 232 337 357 396 438 141 362 Oak-Segment-Tar 20 446 673 755 822 907 142 749 Profiler: top 5 stack trace(s) of of 16867 ms of 4024 thread dumps: 4024/32271 (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) 1713/32271 (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) 1594/32271 (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) 938/32271 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 869/32271 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 41%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 7%: app//org.apache.jackrabbit.oak.core . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5689 All paths: 123545 Oak-Segment-Tar 1 147 148 154 182 193 32 158 Oak-Segment-Tar 10 262 340 355 370 403 147 352 Oak-Segment-Tar 20 383 609 736 811 928 145 719 Profiler: top 5 stack trace(s) of of 16877 ms of 3851 thread dumps: 3851/28097 (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) 1147/28097 (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) 1099/28097 (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) 801/28097 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 779/28097 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 10%: app//org.apache.jackrabbit.oak.cache . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 6211 All paths: 123545 Oak-Segment-Tar 1 170 171 176 308 319 25 201 Oak-Segment-Tar 10 382 408 430 458 478 120 431 Oak-Segment-Tar 20 671 789 934 1057 1196 118 934 Profiler: top 5 stack trace(s) of of 17134 ms of 3805 thread dumps: 3805/27422 (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) 1121/27422 (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) 1052/27422 (3%): 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) 681/27422 (2%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.reset(SegmentNodeStore.java:238) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:238) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 669/27422 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 39%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.core . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5690 All paths: 123545 Oak-Segment-Tar 1 281 284 303 395 485 16 319 Oak-Segment-Tar 10 664 700 735 787 815 70 736 Oak-Segment-Tar 20 1072 1194 1549 1836 1996 75 1546 Profiler: top 5 stack trace(s) of of 17559 ms of 3829 thread dumps: 3829/24155 (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) 750/24155 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getLong(TreeUtil.java:193) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.getNumEntries(PermissionStoreImpl.java:112) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:55) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 618/24155 (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) 531/24155 (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.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) 342/24155 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 30%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 16%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.cache 6%: 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5798 All paths: 123545 Oak-Segment-Tar 1 456 456 483 813 834 10 541 Oak-Segment-Tar 10 1246 1257 1332 1413 1423 40 1336 Oak-Segment-Tar 20 1267 1365 2489 2740 3000 49 2308 Profiler: top 5 stack trace(s) of of 18087 ms of 3931 thread dumps: 3931/24384 (16%): 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) 1019/24384 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getLong(TreeUtil.java:193) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.getNumEntries(PermissionStoreImpl.java:112) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:55) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 706/24384 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 405/24384 (1%): 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) 362/24384 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 30%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 16%: app//org.apache.jackrabbit.oak.commons 15%: app//org.apache.jackrabbit.oak.cache 4%: app//com.google.common.collect . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5640 All paths: 123545 Oak-Segment-Tar 1 145 149 154 165 217 32 157 Oak-Segment-Tar 10 218 319 333 359 373 152 334 Oak-Segment-Tar 20 352 575 707 807 954 150 695 Profiler: top 5 stack trace(s) of of 16908 ms of 3878 thread dumps: 3878/28399 (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) 1446/28399 (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) 1338/28399 (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) 842/28399 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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/28399 (2%): 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: 38%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 15%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 7%: 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5431 All paths: 123545 Oak-Segment-Tar 1 153 155 161 170 172 32 161 Oak-Segment-Tar 10 323 336 353 376 389 149 355 Oak-Segment-Tar 20 576 660 766 829 903 140 753 Profiler: top 5 stack trace(s) of of 17098 ms of 3921 thread dumps: 3921/28102 (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) 1282/28102 (4%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.reset(SegmentNodeStore.java:238) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:238) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 834/28102 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 703/28102 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 651/28102 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 29%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 5%: app//org.apache.jackrabbit.oak.plugins.memory . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 6130 All paths: 123545 Oak-Segment-Tar 1 209 213 221 244 247 23 224 Oak-Segment-Tar 10 496 510 526 554 579 100 530 Oak-Segment-Tar 20 985 1036 1154 1285 1463 100 1169 Profiler: top 5 stack trace(s) of of 17696 ms of 3918 thread dumps: 3918/27957 (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) 530/27957 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 516/27957 (1%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$56/0x00000008001ecc40.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java: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) 516/27957 (1%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$56/0x00000008001ecc40.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java: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) 483/27957 (1%): 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: 19%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.segment.file 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 6063 All paths: 123545 Oak-Segment-Tar 1 469 469 508 604 609 10 515 Oak-Segment-Tar 10 1273 1294 1334 1488 1500 40 1354 Oak-Segment-Tar 20 2313 2452 2704 2945 3194 40 2702 Profiler: top 5 stack trace(s) of of 17919 ms of 4022 thread dumps: 4022/23258 (17%): 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) 1044/23258 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 430/23258 (1%): 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.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:187) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 423/23258 (1%): 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.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:147) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 394/23258 (1%): at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValueList(SegmentPropertyState.java:92) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:181) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.denotesDynamicJcrAll(JcrAllUtil.java:70) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 37%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.cache 17%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 4%: 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 6357 All paths: 123545 Oak-Segment-Tar 1 1012 1012 1028 1083 1083 5 1043 Oak-Segment-Tar 10 2647 2664 2732 2783 2799 20 2724 Oak-Segment-Tar 20 2379 2519 4882 5317 5389 29 4280 Profiler: top 5 stack trace(s) of of 19713 ms of 4178 thread dumps: 4178/25829 (16%): 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/25829 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 500/25829 (1%): at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:432) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValueList(SegmentPropertyState.java:92) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:181) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.denotesDynamicJcrAll(JcrAllUtil.java:70) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 479/25829 (1%): at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:432) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValueList(SegmentPropertyState.java:92) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:181) at app//org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeBits.getInstance(PrivilegeBits.java:186) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 443/25829 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:348) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeNames(SegmentNodeState.java:472) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getChildNodeNames(ReadOnlyBuilder.java:100) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildNames(AbstractTree.java:145) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildren(AbstractTree.java:322) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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.segment 16%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.cache 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 4%: app//com.google.common.collect . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5786 All paths: 123545 Oak-Segment-Tar 1 149 151 156 174 266 31 162 Oak-Segment-Tar 10 310 324 335 355 371 150 337 Oak-Segment-Tar 20 645 703 790 876 900 140 788 Profiler: top 5 stack trace(s) of of 16727 ms of 4080 thread dumps: 4181/27711 (15%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.reset(SegmentNodeStore.java:238) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:238) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 4080/27711 (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) 1116/27711 (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) 1067/27711 (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) 655/27711 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 21%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 15%: app//org.apache.jackrabbit.oak.segment.scheduler 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.cache . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5862 All paths: 123545 Oak-Segment-Tar 1 157 160 171 200 235 29 176 Oak-Segment-Tar 10 326 343 370 392 407 140 368 Oak-Segment-Tar 20 615 681 804 828 963 140 784 Profiler: top 5 stack trace(s) of of 16996 ms of 3726 thread dumps: 3726/25860 (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) 3039/25860 (11%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.reset(SegmentNodeStore.java:238) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:238) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 1083/25860 (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) 981/25860 (3%): 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) 596/25860 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 34%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.segment.scheduler 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5772 All paths: 123545 Oak-Segment-Tar 1 247 248 259 355 438 18 279 Oak-Segment-Tar 10 338 596 637 660 676 81 629 Oak-Segment-Tar 20 898 1194 1339 1536 1723 80 1347 Profiler: top 5 stack trace(s) of of 16902 ms of 3401 thread dumps: 3401/22697 (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) 492/22697 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java: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) 468/22697 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java: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) 444/22697 (1%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java: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) 418/22697 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 43%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: app//org.apache.jackrabbit.oak.plugins.tree.impl 4%: 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5755 All paths: 123545 Oak-Segment-Tar 1 660 660 680 837 837 7 733 Oak-Segment-Tar 10 1823 1829 1969 2026 2035 30 1941 Oak-Segment-Tar 20 3592 3668 3901 4255 4411 40 3931 Profiler: top 5 stack trace(s) of of 20368 ms of 3789 thread dumps: 3789/24720 (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) 1682/24720 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 531/24720 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:147) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 491/24720 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:348) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeNames(SegmentNodeState.java:472) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getChildNodeNames(ReadOnlyBuilder.java:100) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildNames(AbstractTree.java:145) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildren(AbstractTree.java:322) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 489/24720 (1%): at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:432) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValueList(SegmentPropertyState.java:92) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:181) at app//org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeBits.getInstance(PrivilegeBits.java:186) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 46%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//com.google.common.collect . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5761 All paths: 123545 Oak-Segment-Tar 1 1431 1431 1448 1488 1488 4 1454 Oak-Segment-Tar 10 3676 3685 3719 3779 3788 20 3728 Oak-Segment-Tar 20 7099 7141 7515 7667 7684 20 7477 Profiler: top 5 stack trace(s) of of 22933 ms of 4268 thread dumps: 4268/26967 (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) 1710/26967 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 791/26967 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:348) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeNames(SegmentNodeState.java:472) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getChildNodeNames(ReadOnlyBuilder.java:100) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildNames(AbstractTree.java:145) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildren(AbstractTree.java:322) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 681/26967 (2%): at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:432) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValueList(SegmentPropertyState.java:92) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:181) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.denotesDynamicJcrAll(JcrAllUtil.java:70) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 432/26967 (1%): at app//org.apache.jackrabbit.oak.segment.ListRecord.getEntry(ListRecord.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getRecordId(SegmentNodeState.java:248) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:233) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:187) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 43%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.cache 15%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//com.google.common.collect . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5515 All paths: 123545 Oak-Segment-Tar 1 150 151 157 178 183 32 160 Oak-Segment-Tar 10 302 317 338 368 425 150 341 Oak-Segment-Tar 20 436 642 749 846 992 140 748 Profiler: top 5 stack trace(s) of of 16666 ms of 3323 thread dumps: 3323/24887 (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) 1291/24887 (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) 1246/24887 (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) 690/24887 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 669/24887 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 12%: 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 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5846 All paths: 123545 Oak-Segment-Tar 1 163 163 174 198 203 29 177 Oak-Segment-Tar 10 342 357 392 412 431 130 388 Oak-Segment-Tar 20 363 765 861 879 952 125 832 Profiler: top 5 stack trace(s) of of 16736 ms of 3650 thread dumps: 3667/25111 (14%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.reset(SegmentNodeStore.java:238) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:238) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 3650/25111 (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) 708/25111 (2%): 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) 703/25111 (2%): 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) 556/25111 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 31%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.segment.scheduler 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5788 All paths: 123545 Oak-Segment-Tar 1 277 284 296 346 356 17 305 Oak-Segment-Tar 10 711 724 770 802 818 70 768 Oak-Segment-Tar 20 869 995 1642 1896 2014 68 1596 Profiler: top 5 stack trace(s) of of 17660 ms of 3623 thread dumps: 3623/23239 (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) 773/23239 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 603/23239 (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) 499/23239 (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.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) 361/23239 (1%): 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.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:187) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 36%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 15%: app//org.apache.jackrabbit.oak.cache 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 6%: 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 6237 All paths: 123545 Oak-Segment-Tar 1 1052 1052 1060 1131 1131 5 1079 Oak-Segment-Tar 10 2477 2479 2581 2675 2677 20 2574 Oak-Segment-Tar 20 5186 5281 5673 5770 5820 20 5617 Profiler: top 5 stack trace(s) of of 17785 ms of 3513 thread dumps: 3513/20430 (17%): 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) 1325/20430 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 627/20430 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:233) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getBoolean(TreeUtil.java:168) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 603/20430 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:233) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:187) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 573/20430 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:348) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeNames(SegmentNodeState.java:472) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getChildNodeNames(ReadOnlyBuilder.java:100) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildNames(AbstractTree.java:145) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildren(AbstractTree.java:322) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 42%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 17%: app//org.apache.jackrabbit.oak.cache 7%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//org.apache.jackrabbit.oak.plugins.tree.impl . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 6017 All paths: 123545 Oak-Segment-Tar 1 2176 2176 2188 2217 2217 3 2194 Oak-Segment-Tar 10 5347 5349 5412 5416 5416 10 5399 Oak-Segment-Tar 20 11225 11307 11732 11981 11994 20 11706 Profiler: top 5 stack trace(s) of of 26479 ms of 4697 thread dumps: 4697/27991 (16%): 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) 2371/27991 (8%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 1192/27991 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:348) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeNames(SegmentNodeState.java:472) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getChildNodeNames(ReadOnlyBuilder.java:100) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildNames(AbstractTree.java:145) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildren(AbstractTree.java:322) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 712/27991 (2%): at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:432) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValueList(SegmentPropertyState.java:92) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:181) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.denotesDynamicJcrAll(JcrAllUtil.java:70) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 692/27991 (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.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:147) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 36%: app//org.apache.jackrabbit.oak.segment 25%: app//org.apache.jackrabbit.oak.cache 16%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//org.apache.jackrabbit.oak.spi.state . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5095 All paths: 123545 Oak-Segment-Tar 1 144 146 154 172 177 32 157 Oak-Segment-Tar 10 310 319 334 360 369 150 338 Oak-Segment-Tar 20 503 645 758 857 963 142 755 Profiler: top 5 stack trace(s) of of 16674 ms of 3376 thread dumps: 3376/26469 (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) 1378/26469 (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) 1282/26469 (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) 860/26469 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 809/26469 (3%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:239) 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) 809/26469 (3%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:239) 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) summary: 35%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.plugins.tree.impl 4%: app//org.apache.jackrabbit.oak.core . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5765 All paths: 123545 Oak-Segment-Tar 1 173 175 181 211 299 27 192 Oak-Segment-Tar 10 340 364 408 435 452 130 404 Oak-Segment-Tar 20 771 848 891 919 987 120 888 Profiler: top 5 stack trace(s) of of 16989 ms of 3658 thread dumps: 3692/25295 (14%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.reset(SegmentNodeStore.java:238) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:238) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 3658/25295 (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) 939/25295 (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) 926/25295 (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) 602/25295 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 23%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.segment.scheduler 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.cache . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 6716 All paths: 123545 Oak-Segment-Tar 1 318 322 335 420 456 15 353 Oak-Segment-Tar 10 810 819 861 903 916 60 859 Oak-Segment-Tar 20 1507 1563 1842 2165 2261 60 1862 Profiler: top 5 stack trace(s) of of 17577 ms of 3547 thread dumps: 3547/21801 (16%): 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) 756/21801 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 465/21801 (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) 441/21801 (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.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) 383/21801 (1%): 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.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:187) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 37%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 16%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.plugins.tree.impl . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5767 All paths: 123545 Oak-Segment-Tar 1 1327 1327 1338 1397 1397 4 1350 Oak-Segment-Tar 10 3178 3196 3328 3414 3424 20 3313 Oak-Segment-Tar 20 6424 6497 6777 6933 6969 20 6761 Profiler: top 5 stack trace(s) of of 20871 ms of 4022 thread dumps: 4022/25389 (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) 1664/25389 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 779/25389 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:348) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeNames(SegmentNodeState.java:472) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getChildNodeNames(ReadOnlyBuilder.java:100) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildNames(AbstractTree.java:145) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildren(AbstractTree.java:322) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 710/25389 (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.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:147) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 622/25389 (2%): at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:432) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValueList(SegmentPropertyState.java:92) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:181) at app//org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeBits.getInstance(PrivilegeBits.java:186) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 40%: app//org.apache.jackrabbit.oak.segment 21%: app//org.apache.jackrabbit.oak.cache 16%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//com.google.common.collect . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5608 All paths: 123545 Oak-Segment-Tar 1 2565 2565 2573 2580 2580 2 2573 Oak-Segment-Tar 10 7110 7110 7144 7177 7178 10 7144 Oak-Segment-Tar 20 13917 14137 14646 14779 14835 20 14529 Profiler: top 5 stack trace(s) of of 30034 ms of 4995 thread dumps: 4995/34843 (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) 2221/34843 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:910) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 1302/34843 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:233) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:187) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 1286/34843 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:233) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getBoolean(TreeUtil.java:168) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 1196/34843 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:893) 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.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.flush(PermissionEntryProviderImpl.java:69) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.refresh(CompiledPermissionImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:85) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 48%: app//org.apache.jackrabbit.oak.segment 19%: app//org.apache.jackrabbit.oak.cache 14%: app//org.apache.jackrabbit.oak.commons 5%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//com.google.common.collect . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5938 All paths: 123545 Oak-Segment-Tar 1 145 146 149 159 162 34 151 Oak-Segment-Tar 10 270 309 330 348 377 157 329 Oak-Segment-Tar 20 327 610 729 807 925 147 705 Profiler: top 5 stack trace(s) of of 16882 ms of 3510 thread dumps: 3510/25024 (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) 1919/25024 (7%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.reset(SegmentNodeStore.java:238) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:238) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 1146/25024 (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) 1017/25024 (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) 714/25024 (2%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:239) 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: 32%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl 7%: app//org.apache.jackrabbit.oak.segment.scheduler . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 6051 All paths: 123545 Oak-Segment-Tar 1 181 184 194 214 219 26 198 Oak-Segment-Tar 10 372 411 444 479 522 118 447 Oak-Segment-Tar 20 674 764 927 1031 1117 119 916 Profiler: top 5 stack trace(s) of of 17175 ms of 3621 thread dumps: 3621/28519 (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) 1067/28519 (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) 981/28519 (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) 746/28519 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 708/28519 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.cache 10%: 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 6072 All paths: 123545 Oak-Segment-Tar 1 180 182 203 234 251 25 205 Oak-Segment-Tar 10 380 390 428 442 455 120 421 Oak-Segment-Tar 20 614 744 884 967 1076 120 870 Profiler: top 5 stack trace(s) of of 16774 ms of 3699 thread dumps: 3699/26621 (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) 1185/26621 (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) 1108/26621 (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) 690/26621 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 687/26621 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 40%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 7%: 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5989 All paths: 123545 Oak-Segment-Tar 1 302 307 327 399 424 15 338 Oak-Segment-Tar 10 680 741 788 873 953 70 796 Oak-Segment-Tar 20 866 976 1619 1815 1936 71 1546 Profiler: top 5 stack trace(s) of of 17748 ms of 3924 thread dumps: 3924/26768 (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) 1061/26768 (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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 691/26768 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 625/26768 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) 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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 494/26768 (1%): at app//com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:378) at app//com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:300) at app//org.apache.jackrabbit.oak.spi.security.authentication.AuthInfoImpl.(AuthInfoImpl.java:51) at app//org.apache.jackrabbit.oak.spi.security.authentication.AuthInfoImpl.(AuthInfoImpl.java:44) at app//org.apache.jackrabbit.oak.spi.security.authentication.AuthInfoImpl.createFromSubject(AuthInfoImpl.java:59) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getAuthInfo(ContentSessionImpl.java:93) at app//org.apache.jackrabbit.oak.core.ImmutableRoot.(ImmutableRoot.java:61) at app//org.apache.jackrabbit.oak.core.ImmutableRoot.getInstance(ImmutableRoot.java:84) at app//org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory.createReadOnlyRoot(RootFactory.java:51) at app//org.apache.jackrabbit.oak.plugins.tree.impl.RootProviderService.createReadOnlyRoot(RootProviderService.java:41) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:84) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 38%: app//org.apache.jackrabbit.oak.segment 20%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl 4%: app//com.google.common.collect . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5946 All paths: 123545 Oak-Segment-Tar 1 504 504 578 628 628 9 578 Oak-Segment-Tar 10 1199 1282 1510 1727 1751 39 1513 Oak-Segment-Tar 20 2483 2638 2913 3225 3495 40 2943 Profiler: top 5 stack trace(s) of of 19099 ms of 3938 thread dumps: 3938/25707 (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) 1299/25707 (5%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) 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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 1122/25707 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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.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) 1004/25707 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 956/25707 (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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) summary: 35%: app//org.apache.jackrabbit.oak.security.authorization.permission 33%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 3%: app//com.google.common.collect 3%: app//org.apache.jackrabbit.oak.plugins.tree.impl . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5198 All paths: 123545 Oak-Segment-Tar 1 152 152 159 173 181 32 160 Oak-Segment-Tar 10 313 324 335 386 426 150 344 Oak-Segment-Tar 20 392 615 718 811 919 147 711 Profiler: top 5 stack trace(s) of of 16801 ms of 3840 thread dumps: 3840/28713 (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) 1405/28713 (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) 1266/28713 (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) 820/28713 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 808/28713 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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 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 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5565 All paths: 123545 Oak-Segment-Tar 1 189 190 202 227 231 25 205 Oak-Segment-Tar 10 307 424 455 483 529 114 452 Oak-Segment-Tar 20 619 765 974 1092 1245 113 956 Profiler: top 5 stack trace(s) of of 17124 ms of 3770 thread dumps: 3770/26983 (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) 1029/26983 (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) 933/26983 (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) 595/26983 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 574/26983 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 33%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.cache 8%: 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5735 All paths: 123545 Oak-Segment-Tar 1 180 181 191 205 219 26 193 Oak-Segment-Tar 10 394 415 438 462 475 120 439 Oak-Segment-Tar 20 600 792 929 1069 1195 118 932 Profiler: top 5 stack trace(s) of of 17209 ms of 3816 thread dumps: 3816/27210 (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) 1173/27210 (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) 1053/27210 (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) 659/27210 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 621/27210 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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 15%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 6036 All paths: 123545 Oak-Segment-Tar 1 292 298 315 351 351 16 319 Oak-Segment-Tar 10 654 690 736 850 925 70 756 Oak-Segment-Tar 20 1119 1309 1465 1632 1771 80 1465 Profiler: top 5 stack trace(s) of of 17513 ms of 3657 thread dumps: 3657/25355 (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) 779/25355 (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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 448/25355 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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.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) 433/25355 (1%): at app//com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:378) at app//com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:300) at app//org.apache.jackrabbit.oak.spi.security.authentication.AuthInfoImpl.(AuthInfoImpl.java:51) at app//org.apache.jackrabbit.oak.spi.security.authentication.AuthInfoImpl.(AuthInfoImpl.java:44) at app//org.apache.jackrabbit.oak.spi.security.authentication.AuthInfoImpl.createFromSubject(AuthInfoImpl.java:59) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getAuthInfo(ContentSessionImpl.java:93) at app//org.apache.jackrabbit.oak.core.ImmutableRoot.(ImmutableRoot.java:61) at app//org.apache.jackrabbit.oak.core.ImmutableRoot.getInstance(ImmutableRoot.java:84) at app//org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory.createReadOnlyRoot(RootFactory.java:51) at app//org.apache.jackrabbit.oak.plugins.tree.impl.RootProviderService.createReadOnlyRoot(RootProviderService.java:41) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:84) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 407/25355 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 34%: app//org.apache.jackrabbit.oak.segment 23%: app//org.apache.jackrabbit.oak.security.authorization.permission 15%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl 4%: app//org.apache.jackrabbit.oak.core . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5374 All paths: 123545 Oak-Segment-Tar 1 378 382 428 463 467 12 422 Oak-Segment-Tar 10 811 854 1240 1323 1372 46 1194 Oak-Segment-Tar 20 1509 1610 2344 2738 2896 53 2260 Profiler: top 5 stack trace(s) of of 18840 ms of 3821 thread dumps: 3821/24416 (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) 1525/24416 (6%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:437) 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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 1003/24416 (4%): 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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 728/24416 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:437) 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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 696/24416 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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.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: 39%: app//org.apache.jackrabbit.oak.segment 20%: app//org.apache.jackrabbit.oak.security.authorization.permission 16%: 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 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5311 All paths: 123545 Oak-Segment-Tar 1 152 154 162 170 177 31 162 Oak-Segment-Tar 10 306 328 341 376 395 150 346 Oak-Segment-Tar 20 509 659 765 806 891 140 751 Profiler: top 5 stack trace(s) of of 16743 ms of 4017 thread dumps: 4017/26507 (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) 3619/26507 (13%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.reset(SegmentNodeStore.java:238) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:238) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 928/26507 (3%): 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) 904/26507 (3%): 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) 709/26507 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 31%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.segment.scheduler 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5641 All paths: 123545 Oak-Segment-Tar 1 158 159 169 191 244 29 173 Oak-Segment-Tar 10 330 343 365 400 416 140 369 Oak-Segment-Tar 20 418 698 840 955 1101 127 828 Profiler: top 5 stack trace(s) of of 16681 ms of 3760 thread dumps: 3760/28150 (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) 874/28150 (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) 829/28150 (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) 761/28150 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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) 755/28150 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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: 34%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 14%: 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 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5952 All paths: 123545 Oak-Segment-Tar 1 177 181 194 217 226 26 197 Oak-Segment-Tar 10 375 401 434 458 469 120 430 Oak-Segment-Tar 20 737 837 951 1002 1103 120 935 Profiler: top 5 stack trace(s) of of 17187 ms of 3930 thread dumps: 3930/27110 (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) 2459/27110 (9%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.reset(SegmentNodeStore.java:238) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:238) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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) 1023/27110 (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) 957/27110 (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/27110 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//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 17%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.segment.scheduler . 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5639 All paths: 123545 Oak-Segment-Tar 1 250 251 286 332 333 18 285 Oak-Segment-Tar 10 600 616 656 817 863 80 686 Oak-Segment-Tar 20 635 1100 1251 1454 1541 86 1245 Profiler: top 5 stack trace(s) of of 17532 ms of 3722 thread dumps: 3722/23895 (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) 668/23895 (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) 598/23895 (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.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) 564/23895 (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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 522/23895 (2%): at app//com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:378) at app//com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:300) at app//org.apache.jackrabbit.oak.spi.security.authentication.AuthInfoImpl.(AuthInfoImpl.java:51) at app//org.apache.jackrabbit.oak.spi.security.authentication.AuthInfoImpl.(AuthInfoImpl.java:44) at app//org.apache.jackrabbit.oak.spi.security.authentication.AuthInfoImpl.createFromSubject(AuthInfoImpl.java:59) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getAuthInfo(ContentSessionImpl.java:93) at app//org.apache.jackrabbit.oak.core.ImmutableRoot.(ImmutableRoot.java:61) at app//org.apache.jackrabbit.oak.core.ImmutableRoot.getInstance(ImmutableRoot.java:84) at app//org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory.createReadOnlyRoot(RootFactory.java:51) at app//org.apache.jackrabbit.oak.plugins.tree.impl.RootProviderService.createReadOnlyRoot(RootProviderService.java:41) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.refresh(PermissionProviderImpl.java:84) at app//org.apache.jackrabbit.oak.core.MutableRoot.refresh(MutableRoot.java:242) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:517) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:440) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.refresh(SessionImpl.java:437) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasItemGetItemTest.additionalRead(RefreshHasItemGetItemTest.java:42) 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: 32%: app//org.apache.jackrabbit.oak.segment 19%: app//org.apache.jackrabbit.oak.security.authorization.permission 15%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.cache 7%: 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 RefreshHasItemGetItemTest_statusquo_20200911_171331.csv --concurrency 1,10,20 --report false RefreshHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasItemGetItemTest C min 10% 50% 90% max N mean Import deep tree: 5836 All paths: 123545 Oak-Segment-Tar 1 403 404 422 496 510 12 434 Oak-Segment-Tar 10 936 988 1232 1294 1391 47 1203 Oak-Segment-Tar 20 1531 1680 2309 2695 2900 54 2249 Profiler: top 5 stack trace(s) of of 19193 ms of 3812 thread dumps: 3812/24210 (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) 1796/24210 (7%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getHash(MapRecord.java:63) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:181) 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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 1072/24210 (4%): 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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 933/24210 (3%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getHash(MapRecord.java:63) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:181) 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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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) 810/24210 (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:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.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.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: 42%: app//org.apache.jackrabbit.oak.segment 20%: app//org.apache.jackrabbit.oak.security.authorization.permission 17%: app//org.apache.jackrabbit.oak.commons 5%: app//com.google.common.collect 3%: app//org.apache.jackrabbit.oak.plugins.tree.impl . ----------------------------------------- Benchmark completed. see RefreshHasItemGetItemTest_statusquo_20200911_171331.csv for details: Benchmarks: RefreshHasItemGetItemTest Fixture: Oak-Segment-Tar Runtime: 5 Concurrency: 1,10,20 Profiling: true Items to Read: 10000 Number of ACEs per 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 ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 154, 155, 159, 167, 177, 32, 160 Oak-Segment-Tar , 10, 232, 337, 357, 396, 438, 141, 362 Oak-Segment-Tar , 20, 446, 673, 755, 822, 907, 142, 749 Reading 10000 items with 1 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 147, 148, 154, 182, 193, 32, 158 Oak-Segment-Tar , 10, 262, 340, 355, 370, 403, 147, 352 Oak-Segment-Tar , 20, 383, 609, 736, 811, 928, 145, 719 Reading 10000 items with 1 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 170, 171, 176, 308, 319, 25, 201 Oak-Segment-Tar , 10, 382, 408, 430, 458, 478, 120, 431 Oak-Segment-Tar , 20, 671, 789, 934, 1057, 1196, 118, 934 Reading 10000 items with 1 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 281, 284, 303, 395, 485, 16, 319 Oak-Segment-Tar , 10, 664, 700, 735, 787, 815, 70, 736 Oak-Segment-Tar , 20, 1072, 1194, 1549, 1836, 1996, 75, 1546 Reading 10000 items with 1 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 456, 456, 483, 813, 834, 10, 541 Oak-Segment-Tar , 10, 1246, 1257, 1332, 1413, 1423, 40, 1336 Oak-Segment-Tar , 20, 1267, 1365, 2489, 2740, 3000, 49, 2308 Reading 10000 items with 3 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 145, 149, 154, 165, 217, 32, 157 Oak-Segment-Tar , 10, 218, 319, 333, 359, 373, 152, 334 Oak-Segment-Tar , 20, 352, 575, 707, 807, 954, 150, 695 Reading 10000 items with 3 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 153, 155, 161, 170, 172, 32, 161 Oak-Segment-Tar , 10, 323, 336, 353, 376, 389, 149, 355 Oak-Segment-Tar , 20, 576, 660, 766, 829, 903, 140, 753 Reading 10000 items with 3 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 209, 213, 221, 244, 247, 23, 224 Oak-Segment-Tar , 10, 496, 510, 526, 554, 579, 100, 530 Oak-Segment-Tar , 20, 985, 1036, 1154, 1285, 1463, 100, 1169 Reading 10000 items with 3 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 469, 469, 508, 604, 609, 10, 515 Oak-Segment-Tar , 10, 1273, 1294, 1334, 1488, 1500, 40, 1354 Oak-Segment-Tar , 20, 2313, 2452, 2704, 2945, 3194, 40, 2702 Reading 10000 items with 3 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 1012, 1012, 1028, 1083, 1083, 5, 1043 Oak-Segment-Tar , 10, 2647, 2664, 2732, 2783, 2799, 20, 2724 Oak-Segment-Tar , 20, 2379, 2519, 4882, 5317, 5389, 29, 4280 Reading 10000 items with 5 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 149, 151, 156, 174, 266, 31, 162 Oak-Segment-Tar , 10, 310, 324, 335, 355, 371, 150, 337 Oak-Segment-Tar , 20, 645, 703, 790, 876, 900, 140, 788 Reading 10000 items with 5 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 157, 160, 171, 200, 235, 29, 176 Oak-Segment-Tar , 10, 326, 343, 370, 392, 407, 140, 368 Oak-Segment-Tar , 20, 615, 681, 804, 828, 963, 140, 784 Reading 10000 items with 5 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 247, 248, 259, 355, 438, 18, 279 Oak-Segment-Tar , 10, 338, 596, 637, 660, 676, 81, 629 Oak-Segment-Tar , 20, 898, 1194, 1339, 1536, 1723, 80, 1347 Reading 10000 items with 5 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 660, 660, 680, 837, 837, 7, 733 Oak-Segment-Tar , 10, 1823, 1829, 1969, 2026, 2035, 30, 1941 Oak-Segment-Tar , 20, 3592, 3668, 3901, 4255, 4411, 40, 3931 Reading 10000 items with 5 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 1431, 1431, 1448, 1488, 1488, 4, 1454 Oak-Segment-Tar , 10, 3676, 3685, 3719, 3779, 3788, 20, 3728 Oak-Segment-Tar , 20, 7099, 7141, 7515, 7667, 7684, 20, 7477 Reading 10000 items with 8 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 150, 151, 157, 178, 183, 32, 160 Oak-Segment-Tar , 10, 302, 317, 338, 368, 425, 150, 341 Oak-Segment-Tar , 20, 436, 642, 749, 846, 992, 140, 748 Reading 10000 items with 8 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 163, 163, 174, 198, 203, 29, 177 Oak-Segment-Tar , 10, 342, 357, 392, 412, 431, 130, 388 Oak-Segment-Tar , 20, 363, 765, 861, 879, 952, 125, 832 Reading 10000 items with 8 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 277, 284, 296, 346, 356, 17, 305 Oak-Segment-Tar , 10, 711, 724, 770, 802, 818, 70, 768 Oak-Segment-Tar , 20, 869, 995, 1642, 1896, 2014, 68, 1596 Reading 10000 items with 8 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 1052, 1052, 1060, 1131, 1131, 5, 1079 Oak-Segment-Tar , 10, 2477, 2479, 2581, 2675, 2677, 20, 2574 Oak-Segment-Tar , 20, 5186, 5281, 5673, 5770, 5820, 20, 5617 Reading 10000 items with 8 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 2176, 2176, 2188, 2217, 2217, 3, 2194 Oak-Segment-Tar , 10, 5347, 5349, 5412, 5416, 5416, 10, 5399 Oak-Segment-Tar , 20, 11225, 11307, 11732, 11981, 11994, 20, 11706 Reading 10000 items with 10 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 144, 146, 154, 172, 177, 32, 157 Oak-Segment-Tar , 10, 310, 319, 334, 360, 369, 150, 338 Oak-Segment-Tar , 20, 503, 645, 758, 857, 963, 142, 755 Reading 10000 items with 10 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 173, 175, 181, 211, 299, 27, 192 Oak-Segment-Tar , 10, 340, 364, 408, 435, 452, 130, 404 Oak-Segment-Tar , 20, 771, 848, 891, 919, 987, 120, 888 Reading 10000 items with 10 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 318, 322, 335, 420, 456, 15, 353 Oak-Segment-Tar , 10, 810, 819, 861, 903, 916, 60, 859 Oak-Segment-Tar , 20, 1507, 1563, 1842, 2165, 2261, 60, 1862 Reading 10000 items with 10 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 1327, 1327, 1338, 1397, 1397, 4, 1350 Oak-Segment-Tar , 10, 3178, 3196, 3328, 3414, 3424, 20, 3313 Oak-Segment-Tar , 20, 6424, 6497, 6777, 6933, 6969, 20, 6761 Reading 10000 items with 10 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 2565, 2565, 2573, 2580, 2580, 2, 2573 Oak-Segment-Tar , 10, 7110, 7110, 7144, 7177, 7178, 10, 7144 Oak-Segment-Tar , 20, 13917, 14137, 14646, 14779, 14835, 20, 14529 Reading 10000 items with 11 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 145, 146, 149, 159, 162, 34, 151 Oak-Segment-Tar , 10, 270, 309, 330, 348, 377, 157, 329 Oak-Segment-Tar , 20, 327, 610, 729, 807, 925, 147, 705 Reading 10000 items with 11 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 181, 184, 194, 214, 219, 26, 198 Oak-Segment-Tar , 10, 372, 411, 444, 479, 522, 118, 447 Oak-Segment-Tar , 20, 674, 764, 927, 1031, 1117, 119, 916 Reading 10000 items with 11 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 180, 182, 203, 234, 251, 25, 205 Oak-Segment-Tar , 10, 380, 390, 428, 442, 455, 120, 421 Oak-Segment-Tar , 20, 614, 744, 884, 967, 1076, 120, 870 Reading 10000 items with 11 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 302, 307, 327, 399, 424, 15, 338 Oak-Segment-Tar , 10, 680, 741, 788, 873, 953, 70, 796 Oak-Segment-Tar , 20, 866, 976, 1619, 1815, 1936, 71, 1546 Reading 10000 items with 11 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 504, 504, 578, 628, 628, 9, 578 Oak-Segment-Tar , 10, 1199, 1282, 1510, 1727, 1751, 39, 1513 Oak-Segment-Tar , 20, 2483, 2638, 2913, 3225, 3495, 40, 2943 Reading 10000 items with 21 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 152, 152, 159, 173, 181, 32, 160 Oak-Segment-Tar , 10, 313, 324, 335, 386, 426, 150, 344 Oak-Segment-Tar , 20, 392, 615, 718, 811, 919, 147, 711 Reading 10000 items with 21 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 189, 190, 202, 227, 231, 25, 205 Oak-Segment-Tar , 10, 307, 424, 455, 483, 529, 114, 452 Oak-Segment-Tar , 20, 619, 765, 974, 1092, 1245, 113, 956 Reading 10000 items with 21 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 180, 181, 191, 205, 219, 26, 193 Oak-Segment-Tar , 10, 394, 415, 438, 462, 475, 120, 439 Oak-Segment-Tar , 20, 600, 792, 929, 1069, 1195, 118, 932 Reading 10000 items with 21 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 292, 298, 315, 351, 351, 16, 319 Oak-Segment-Tar , 10, 654, 690, 736, 850, 925, 70, 756 Oak-Segment-Tar , 20, 1119, 1309, 1465, 1632, 1771, 80, 1465 Reading 10000 items with 21 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 378, 382, 428, 463, 467, 12, 422 Oak-Segment-Tar , 10, 811, 854, 1240, 1323, 1372, 46, 1194 Oak-Segment-Tar , 20, 1509, 1610, 2344, 2738, 2896, 53, 2260 Reading 10000 items with 31 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 152, 154, 162, 170, 177, 31, 162 Oak-Segment-Tar , 10, 306, 328, 341, 376, 395, 150, 346 Oak-Segment-Tar , 20, 509, 659, 765, 806, 891, 140, 751 Reading 10000 items with 31 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 158, 159, 169, 191, 244, 29, 173 Oak-Segment-Tar , 10, 330, 343, 365, 400, 416, 140, 369 Oak-Segment-Tar , 20, 418, 698, 840, 955, 1101, 127, 828 Reading 10000 items with 31 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 177, 181, 194, 217, 226, 26, 197 Oak-Segment-Tar , 10, 375, 401, 434, 458, 469, 120, 430 Oak-Segment-Tar , 20, 737, 837, 951, 1002, 1103, 120, 935 Reading 10000 items with 31 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 250, 251, 286, 332, 333, 18, 285 Oak-Segment-Tar , 10, 600, 616, 656, 817, 863, 80, 686 Oak-Segment-Tar , 20, 635, 1100, 1251, 1454, 1541, 86, 1245 Reading 10000 items with 31 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasItemGetItemTest , C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 403, 404, 422, 496, 510, 12, 434 Oak-Segment-Tar , 10, 936, 988, 1232, 1294, 1391, 47, 1203 Oak-Segment-Tar , 20, 1531, 1680, 2309, 2695, 2900, 54, 2249