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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5516 All paths: 123545 Oak-Segment-Tar 1 157 159 169 212 241 29 177 Oak-Segment-Tar 10 249 316 340 410 495 146 352 Oak-Segment-Tar 20 652 711 734 830 852 140 751 Profiler: top 5 stack trace(s) of of 16850 ms of 4126 thread dumps: 4417/26655 (16%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 4126/26655 (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) 943/26655 (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) 883/26655 (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) 521/26655 (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: 28%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.segment.scheduler 16%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5840 All paths: 123545 Oak-Segment-Tar 1 155 157 176 229 250 28 184 Oak-Segment-Tar 10 320 351 440 498 562 120 434 Oak-Segment-Tar 20 494 581 680 830 1039 151 696 Profiler: top 5 stack trace(s) of of 16883 ms of 3623 thread dumps: 3623/25919 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 843/25919 (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) 755/25919 (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) 688/25919 (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) 661/25919 (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 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 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 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 6060 All paths: 123545 Oak-Segment-Tar 1 178 179 198 270 283 24 212 Oak-Segment-Tar 10 303 412 458 561 716 110 474 Oak-Segment-Tar 20 471 723 866 972 1063 122 854 Profiler: top 5 stack trace(s) of of 16799 ms of 3644 thread dumps: 3644/26928 (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) 674/26928 (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) 620/26928 (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) 576/26928 (2%): 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) 572/26928 (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: 19%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.segment.file 16%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 1 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 1 --numberOfGroups 500 --csvFile RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5711 All paths: 123545 Oak-Segment-Tar 1 323 325 340 457 502 14 359 Oak-Segment-Tar 10 703 750 868 1068 1151 60 871 Oak-Segment-Tar 20 830 1009 1660 1827 1948 68 1597 Profiler: top 5 stack trace(s) of of 17640 ms of 3947 thread dumps: 3947/26222 (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) 475/26222 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 468/26222 (1%): at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:428) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:240) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 451/26222 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:54) 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) 446/26222 (1%): 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: 36%: app//org.apache.jackrabbit.oak.segment 20%: app//org.apache.jackrabbit.oak.security.authorization.permission 17%: app//org.apache.jackrabbit.oak.commons 5%: app//org.apache.jackrabbit.oak.plugins.tree.impl 4%: app//com.google.common.collect . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5924 All paths: 123545 Oak-Segment-Tar 1 603 603 620 713 713 8 635 Oak-Segment-Tar 10 1346 1396 1569 1644 1703 40 1542 Oak-Segment-Tar 20 2581 2703 2916 3177 3354 40 2935 Profiler: top 5 stack trace(s) of of 18373 ms of 3904 thread dumps: 3904/26727 (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) 839/26727 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 803/26727 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPermissions(CompiledPermissionImpl.java:342) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalIsGranted(CompiledPermissionImpl.java:306) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.isGranted(CompiledPermissionImpl.java:281) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:189) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.isGranted(PermissionProviderImpl.java:122) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:298) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:54) 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) 785/26727 (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) 424/26727 (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.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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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: 22%: app//org.apache.jackrabbit.oak.security.authorization.permission 21%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.segment.file 5%: app//org.apache.jackrabbit.oak.cache . Reading 10000 items with 3 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 3 --numberOfGroups 1 --csvFile RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5270 All paths: 123545 Oak-Segment-Tar 1 151 153 161 185 188 31 166 Oak-Segment-Tar 10 302 331 359 428 474 140 370 Oak-Segment-Tar 20 436 594 703 809 1006 151 701 Profiler: top 5 stack trace(s) of of 16910 ms of 3766 thread dumps: 3766/28368 (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) 853/28368 (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) 776/28368 (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) 661/28368 (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.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) 638/28368 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 30%: 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.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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5157 All paths: 123545 Oak-Segment-Tar 1 153 154 164 198 229 30 170 Oak-Segment-Tar 10 287 333 355 423 502 140 365 Oak-Segment-Tar 20 375 586 723 843 946 146 718 Profiler: top 5 stack trace(s) of of 16854 ms of 3743 thread dumps: 3743/27408 (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) 1358/27408 (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.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) 1240/27408 (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) 857/27408 (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.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) 779/27408 (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.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 3 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 3 --numberOfGroups 100 --csvFile RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 6248 All paths: 123545 Oak-Segment-Tar 1 221 230 290 328 334 18 284 Oak-Segment-Tar 10 540 578 647 813 888 80 668 Oak-Segment-Tar 20 822 917 1194 1342 1508 98 1158 Profiler: top 5 stack trace(s) of of 17531 ms of 3747 thread dumps: 3747/26171 (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) 516/26171 (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) 511/26171 (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) 509/26171 (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.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) 458/26171 (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: 38%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.cache . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 7024 All paths: 123545 Oak-Segment-Tar 1 568 568 667 1047 1047 7 732 Oak-Segment-Tar 10 1449 1453 1486 1533 1548 40 1487 Oak-Segment-Tar 20 2462 2608 2830 3148 3387 40 2869 Profiler: top 5 stack trace(s) of of 18358 ms of 4018 thread dumps: 4018/25380 (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) 1165/25380 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 464/25380 (1%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 446/25380 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 421/25380 (1%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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 18%: app//org.apache.jackrabbit.oak.commons 16%: app//org.apache.jackrabbit.oak.cache 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 4%: app//com.google.common.collect . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5471 All paths: 123545 Oak-Segment-Tar 1 1112 1112 1113 1171 1171 5 1125 Oak-Segment-Tar 10 2844 2872 2978 3101 3107 20 2986 Oak-Segment-Tar 20 5458 5665 5895 5997 6022 20 5863 Profiler: top 5 stack trace(s) of of 19319 ms of 4145 thread dumps: 4145/23893 (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) 1350/23893 (5%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 506/23893 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 469/23893 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 462/23893 (1%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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 17%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.cache 3%: 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 7238 All paths: 123545 Oak-Segment-Tar 1 160 163 207 235 244 26 201 Oak-Segment-Tar 10 264 317 339 410 579 145 354 Oak-Segment-Tar 20 483 657 763 859 944 141 755 Profiler: top 5 stack trace(s) of of 17072 ms of 3872 thread dumps: 3872/27766 (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) 1545/27766 (5%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 1141/27766 (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) 942/27766 (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) 785/27766 (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: 33%: 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 6%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 5 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 5 --numberOfGroups 10 --csvFile RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5414 All paths: 123545 Oak-Segment-Tar 1 160 161 171 188 221 29 173 Oak-Segment-Tar 10 348 361 371 425 466 140 381 Oak-Segment-Tar 20 586 708 795 967 1064 131 819 Profiler: top 5 stack trace(s) of of 17084 ms of 3952 thread dumps: 3952/28784 (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) 2051/28784 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 1230/28784 (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) 1200/28784 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:385) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) 762/28784 (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: 23%: 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 9%: 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 6930 All paths: 123545 Oak-Segment-Tar 1 259 261 318 442 446 15 334 Oak-Segment-Tar 10 569 585 616 893 960 80 684 Oak-Segment-Tar 20 1042 1189 1345 1489 1633 80 1335 Profiler: top 5 stack trace(s) of of 17363 ms of 3799 thread dumps: 3799/24956 (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) 581/24956 (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.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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 570/24956 (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) 543/24956 (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) 438/24956 (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: 32%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: app//org.apache.jackrabbit.oak.plugins.tree.impl . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5446 All paths: 123545 Oak-Segment-Tar 1 971 971 1017 1196 1196 5 1042 Oak-Segment-Tar 10 1227 1237 2513 2541 2584 23 2346 Oak-Segment-Tar 20 3650 4013 4597 4928 5167 40 4531 Profiler: top 5 stack trace(s) of of 22095 ms of 4490 thread dumps: 4490/27623 (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) 2301/27623 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 768/27623 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 747/27623 (2%): 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:183) 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 656/27623 (2%): 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:183) 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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: 34%: app//org.apache.jackrabbit.oak.segment 23%: app//org.apache.jackrabbit.oak.cache 16%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 5 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 5 --numberOfGroups 1000 --csvFile RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5492 All paths: 123545 Oak-Segment-Tar 1 1639 1639 1662 1669 1669 4 1658 Oak-Segment-Tar 10 4125 4159 4216 4273 4284 20 4215 Oak-Segment-Tar 20 8440 8723 9014 9116 9157 20 8971 Profiler: top 5 stack trace(s) of of 26422 ms of 5361 thread dumps: 5361/33984 (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) 2297/33984 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 953/33984 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 789/33984 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 770/33984 (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.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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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 22%: app//org.apache.jackrabbit.oak.cache 16%: app//org.apache.jackrabbit.oak.commons 10%: 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 6008 All paths: 123545 Oak-Segment-Tar 1 155 159 168 222 266 29 178 Oak-Segment-Tar 10 268 318 368 449 537 138 373 Oak-Segment-Tar 20 323 613 715 812 906 147 707 Profiler: top 5 stack trace(s) of of 16867 ms of 3700 thread dumps: 3700/27584 (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) 1256/27584 (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) 1158/27584 (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) 834/27584 (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) 754/27584 (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: 36%: 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.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.core . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5279 All paths: 123545 Oak-Segment-Tar 1 169 171 174 191 204 29 178 Oak-Segment-Tar 10 327 362 383 460 518 130 394 Oak-Segment-Tar 20 642 772 878 953 981 120 865 Profiler: top 5 stack trace(s) of of 16666 ms of 4022 thread dumps: 4340/26574 (16%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 4022/26574 (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) 873/26574 (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) 837/26574 (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) 536/26574 (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 16%: app//org.apache.jackrabbit.oak.segment.scheduler 15%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5682 All paths: 123545 Oak-Segment-Tar 1 327 338 381 464 481 13 393 Oak-Segment-Tar 10 581 619 974 1125 1207 58 936 Oak-Segment-Tar 20 1171 1269 1551 1799 2116 75 1557 Profiler: top 5 stack trace(s) of of 18195 ms of 3950 thread dumps: 3950/24844 (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) 838/24844 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 344/24844 (1%): 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) 335/24844 (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) 331/24844 (1%): 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: 20%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.segment.file 16%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.cache . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 6043 All paths: 123545 Oak-Segment-Tar 1 1226 1226 1354 1479 1479 4 1353 Oak-Segment-Tar 10 3377 3438 3644 3795 3803 20 3626 Oak-Segment-Tar 20 6032 6053 6304 6428 6454 20 6278 Profiler: top 5 stack trace(s) of of 21086 ms of 4245 thread dumps: 4245/27418 (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) 855/27418 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 663/27418 (2%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 607/27418 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 577/27418 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:136) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 49%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.cache 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//com.google.common.collect . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5724 All paths: 123545 Oak-Segment-Tar 1 2325 2325 2361 2363 2363 3 2350 Oak-Segment-Tar 10 6123 6129 6227 6261 6262 10 6217 Oak-Segment-Tar 20 12207 12285 12680 12830 12834 20 12625 Profiler: top 5 stack trace(s) of of 28818 ms of 5616 thread dumps: 5616/33328 (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) 2809/33328 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 1652/33328 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 839/33328 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 773/33328 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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: 35%: app//org.apache.jackrabbit.oak.segment 26%: app//org.apache.jackrabbit.oak.cache 16%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.security.authorization.permission 2%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 10 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.35-SNAPSHOT.jar benchmark --itemsToRead 10000 --numberOfInitialAce 10 --numberOfGroups 1 --csvFile RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5256 All paths: 123545 Oak-Segment-Tar 1 151 155 161 173 182 31 163 Oak-Segment-Tar 10 244 329 354 392 422 145 354 Oak-Segment-Tar 20 438 591 719 823 948 151 711 Profiler: top 5 stack trace(s) of of 16919 ms of 3745 thread dumps: 3745/27916 (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) 1381/27916 (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) 1356/27916 (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) 824/27916 (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) 813/27916 (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 15%: 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 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5724 All paths: 123545 Oak-Segment-Tar 1 173 175 182 195 203 28 183 Oak-Segment-Tar 10 396 402 422 483 550 120 436 Oak-Segment-Tar 20 712 785 878 972 1022 120 877 Profiler: top 5 stack trace(s) of of 16863 ms of 3761 thread dumps: 3761/28167 (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) 731/28167 (2%): 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) 704/28167 (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) 698/28167 (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) 666/28167 (2%): 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) summary: 19%: app//org.apache.jackrabbit.oak.segment.file 18%: 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 . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5457 All paths: 123545 Oak-Segment-Tar 1 336 338 347 379 384 15 354 Oak-Segment-Tar 10 865 871 910 1077 1136 60 944 Oak-Segment-Tar 20 1575 1687 1905 2171 2417 60 1907 Profiler: top 5 stack trace(s) of of 18197 ms of 4084 thread dumps: 4084/24737 (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) 985/24737 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 492/24737 (1%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java: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) 488/24737 (1%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 475/24737 (1%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java: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: 44%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: app//org.apache.jackrabbit.oak.cache 4%: 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5600 All paths: 123545 Oak-Segment-Tar 1 1419 1419 1428 1503 1503 4 1445 Oak-Segment-Tar 10 3520 3521 3597 3629 3679 20 3590 Oak-Segment-Tar 20 6360 6432 6826 7030 7064 20 6804 Profiler: top 5 stack trace(s) of of 21884 ms of 4674 thread dumps: 4674/29858 (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) 1125/29858 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 1012/29858 (3%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 992/29858 (3%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 962/29858 (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.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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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 20%: app//org.apache.jackrabbit.oak.cache 16%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.spi.state 9%: app//org.apache.jackrabbit.oak.security.authorization.permission . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5525 All paths: 123545 Oak-Segment-Tar 1 2853 2853 2854 2855 2855 2 2854 Oak-Segment-Tar 10 7510 7512 7567 7592 7592 10 7563 Oak-Segment-Tar 20 14743 15220 15432 15586 15624 20 15383 Profiler: top 5 stack trace(s) of of 32099 ms of 5837 thread dumps: 5837/38138 (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) 3403/38138 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 1865/38138 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 818/38138 (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.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:183) 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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/38138 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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: 24%: app//org.apache.jackrabbit.oak.cache 21%: app//org.apache.jackrabbit.oak.segment 20%: app//org.apache.jackrabbit.oak.segment.file 15%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.security.authorization.permission . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5598 All paths: 123545 Oak-Segment-Tar 1 154 155 160 180 204 31 164 Oak-Segment-Tar 10 205 346 367 476 572 131 386 Oak-Segment-Tar 20 360 592 734 820 941 145 717 Profiler: top 5 stack trace(s) of of 16804 ms of 3731 thread dumps: 3731/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) 1340/26983 (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.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) 1124/26983 (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) 802/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) 762/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: 37%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 11 initial ACEs per principal and 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5428 All paths: 123545 Oak-Segment-Tar 1 170 171 178 192 202 28 179 Oak-Segment-Tar 10 383 395 414 489 571 120 426 Oak-Segment-Tar 20 382 726 875 921 993 124 836 Profiler: top 5 stack trace(s) of of 16600 ms of 3886 thread dumps: 3886/27064 (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) 2448/27064 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 775/27064 (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) 768/27064 (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) 616/27064 (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: 25%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.segment.scheduler 8%: 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5519 All paths: 123545 Oak-Segment-Tar 1 193 195 205 222 280 24 209 Oak-Segment-Tar 10 431 446 466 566 671 110 484 Oak-Segment-Tar 20 639 756 964 1088 1322 114 947 Profiler: top 5 stack trace(s) of of 17074 ms of 3867 thread dumps: 3867/27817 (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) 1251/27817 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 1065/27817 (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) 872/27817 (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) 719/27817 (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 19%: app//org.apache.jackrabbit.oak.security.authorization.permission 15%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.cache 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5875 All paths: 123545 Oak-Segment-Tar 1 371 373 397 443 447 13 403 Oak-Segment-Tar 10 1057 1078 1132 1460 1504 50 1200 Oak-Segment-Tar 20 1845 1993 2209 2456 2605 59 2203 Profiler: top 5 stack trace(s) of of 19438 ms of 4076 thread dumps: 4076/27268 (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) 775/27268 (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.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 672/27268 (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.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 667/27268 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 628/27268 (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) summary: 31%: app//org.apache.jackrabbit.oak.segment 29%: app//org.apache.jackrabbit.oak.security.authorization.permission 15%: app//org.apache.jackrabbit.oak.commons 4%: app//com.google.common.collect 4%: app//org.apache.jackrabbit.oak.plugins.tree.impl . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5655 All paths: 123545 Oak-Segment-Tar 1 674 674 719 847 847 7 733 Oak-Segment-Tar 10 1865 1910 2096 2241 2317 30 2092 Oak-Segment-Tar 20 3690 3985 4210 4506 4942 40 4218 Profiler: top 5 stack trace(s) of of 21291 ms of 4076 thread dumps: 4076/30045 (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) 1290/30045 (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.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 983/30045 (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) 877/30045 (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.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 838/30045 (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:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:448) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:138) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 33%: app//org.apache.jackrabbit.oak.security.authorization.permission 27%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.segment.file 3%: app//com.google.common.collect . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5162 All paths: 123545 Oak-Segment-Tar 1 157 158 163 191 255 30 170 Oak-Segment-Tar 10 305 329 355 380 428 150 354 Oak-Segment-Tar 20 394 633 748 832 951 141 738 Profiler: top 5 stack trace(s) of of 16925 ms of 3452 thread dumps: 3452/26646 (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) 833/26646 (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) 799/26646 (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) 706/26646 (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) 674/26646 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:222) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:443) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:244) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.authorization.AbstractHasItemGetItemTest.randomRead(AbstractHasItemGetItemTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:389) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:310) summary: 37%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.core . Reading 10000 items with 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5198 All paths: 123545 Oak-Segment-Tar 1 190 191 196 233 301 25 205 Oak-Segment-Tar 10 384 440 462 503 527 110 462 Oak-Segment-Tar 20 578 733 978 1104 1234 111 963 Profiler: top 5 stack trace(s) of of 17111 ms of 3481 thread dumps: 3481/26234 (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) 1044/26234 (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) 990/26234 (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) 596/26234 (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) 513/26234 (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: 32%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.cache 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 items with 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5445 All paths: 123545 Oak-Segment-Tar 1 198 199 202 218 248 25 206 Oak-Segment-Tar 10 413 437 460 585 653 110 484 Oak-Segment-Tar 20 653 826 959 1084 1184 116 953 Profiler: top 5 stack trace(s) of of 17412 ms of 3422 thread dumps: 3422/25671 (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) 946/25671 (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) 891/25671 (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) 579/25671 (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) 560/25671 (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: 30%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.cache . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5439 All paths: 123545 Oak-Segment-Tar 1 372 376 397 450 461 13 407 Oak-Segment-Tar 10 1041 1078 1191 1295 1436 50 1187 Oak-Segment-Tar 20 1902 2089 2255 2512 2650 60 2277 Profiler: top 5 stack trace(s) of of 19544 ms of 3647 thread dumps: 3647/26164 (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) 884/26164 (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) 831/26164 (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.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 826/26164 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:80) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java: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) 782/26164 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:80) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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: 34%: app//org.apache.jackrabbit.oak.segment 28%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 4%: app//org.apache.jackrabbit.oak.cache 4%: app//org.apache.jackrabbit.oak.plugins.tree.impl . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5844 All paths: 123545 Oak-Segment-Tar 1 673 673 700 831 831 8 714 Oak-Segment-Tar 10 1824 1885 2014 2121 2167 30 2011 Oak-Segment-Tar 20 3588 3844 4053 4378 4454 40 4073 Profiler: top 5 stack trace(s) of of 21403 ms of 3722 thread dumps: 3722/26803 (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) 1678/26803 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:80) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 1251/26803 (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.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 1215/26803 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:80) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java: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) 809/26803 (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 31%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 4%: app//com.google.common.collect 4%: app//org.apache.jackrabbit.oak.cache . 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5153 All paths: 123545 Oak-Segment-Tar 1 159 159 162 171 184 31 164 Oak-Segment-Tar 10 321 344 363 415 516 140 372 Oak-Segment-Tar 20 512 649 750 854 911 142 745 Profiler: top 5 stack trace(s) of of 16920 ms of 3452 thread dumps: 3452/26305 (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) 1268/26305 (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) 1122/26305 (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) 766/26305 (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) 657/26305 (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 15%: 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 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5398 All paths: 123545 Oak-Segment-Tar 1 162 163 166 231 247 29 175 Oak-Segment-Tar 10 342 354 369 387 520 140 375 Oak-Segment-Tar 20 619 709 781 808 888 140 771 Profiler: top 5 stack trace(s) of of 16872 ms of 3636 thread dumps: 3894/25646 (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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 3636/25646 (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) 729/25646 (2%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java: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) 713/25646 (2%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java: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) 624/25646 (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: 30%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.segment.scheduler 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 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5096 All paths: 123545 Oak-Segment-Tar 1 200 201 206 251 312 24 215 Oak-Segment-Tar 10 399 441 468 509 533 110 470 Oak-Segment-Tar 20 438 855 1007 1084 1163 107 975 Profiler: top 5 stack trace(s) of of 17022 ms of 3550 thread dumps: 3550/23730 (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) 2056/23730 (8%): 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.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:58) 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) 645/23730 (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) 568/23730 (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) 528/23730 (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: 33%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.security.authorization.permission 15%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 5609 All paths: 123545 Oak-Segment-Tar 1 369 371 395 457 465 13 405 Oak-Segment-Tar 10 957 991 1222 1301 1309 49 1190 Oak-Segment-Tar 20 1469 1548 2398 2610 2740 54 2226 Profiler: top 5 stack trace(s) of of 19001 ms of 3545 thread dumps: 3545/24645 (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) 894/24645 (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) 831/24645 (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.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 723/24645 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.getEntryName(PermissionUtil.java:61) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:80) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 695/24645 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.getEntryName(PermissionUtil.java:61) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:80) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java: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: 33%: app//org.apache.jackrabbit.oak.segment 28%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 4%: app//org.apache.jackrabbit.oak.cache 4%: 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 RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv --concurrency 1,10,20 --report false RefreshHasPrivPermHasItemGetItemTest Oak-Segment-Tar Apache Jackrabbit Oak 1.35-SNAPSHOT # RefreshHasPrivPermHasItemG C min 10% 50% 90% max N mean Import deep tree: 6268 All paths: 123545 Oak-Segment-Tar 1 729 729 762 795 795 7 763 Oak-Segment-Tar 10 2014 2025 2134 2327 2360 30 2153 Oak-Segment-Tar 20 3676 3862 4248 4793 5467 39 4314 Profiler: top 5 stack trace(s) of of 22054 ms of 3725 thread dumps: 3725/28132 (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) 1816/28132 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:80) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 1354/28132 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:80) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java: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) 1093/28132 (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.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:91) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.access$100(PermissionEntryProviderImpl.java:29) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:122) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl$EntryIterator.getNext(PermissionEntryProviderImpl.java:94) 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.getPrivilegeBits(CompiledPermissionImpl.java:410) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.internalGetPrivileges(CompiledPermissionImpl.java:396) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.hasPrivileges(CompiledPermissionImpl.java:299) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.hasPrivileges(PermissionProviderImpl.java:96) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:258) at app//org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AbstractAccessControlManager.hasPrivileges(AbstractAccessControlManager.java:90) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:75) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator$3.perform(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) at app//org.apache.jackrabbit.oak.jcr.delegate.AccessControlManagerDelegator.hasPrivileges(AccessControlManagerDelegator.java:71) at app//org.apache.jackrabbit.oak.jcr.delegate.JackrabbitAccessControlManagerDelegator.hasPrivileges(JackrabbitAccessControlManagerDelegator.java:131) at app//org.apache.jackrabbit.oak.benchmark.authorization.RefreshHasPrivPermHasItemGetItemTest.additionalRead(RefreshHasPrivPermHasItemGetItemTest.java:56) 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) 924/28132 (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: 39%: app//org.apache.jackrabbit.oak.security.authorization.permission 33%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 3%: app//com.google.common.collect 2%: app//org.apache.jackrabbit.oak.plugins.tree.impl . ----------------------------------------- Benchmark completed. see RefreshHasPrivPermHasItemGetItemTest_statusquo_20200909_125645.csv for details: Benchmarks: RefreshHasPrivPermHasItemGetItemTest 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 ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 157, 159, 169, 212, 241, 29, 177 Oak-Segment-Tar , 10, 249, 316, 340, 410, 495, 146, 352 Oak-Segment-Tar , 20, 652, 711, 734, 830, 852, 140, 751 Reading 10000 items with 1 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 155, 157, 176, 229, 250, 28, 184 Oak-Segment-Tar , 10, 320, 351, 440, 498, 562, 120, 434 Oak-Segment-Tar , 20, 494, 581, 680, 830, 1039, 151, 696 Reading 10000 items with 1 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 178, 179, 198, 270, 283, 24, 212 Oak-Segment-Tar , 10, 303, 412, 458, 561, 716, 110, 474 Oak-Segment-Tar , 20, 471, 723, 866, 972, 1063, 122, 854 Reading 10000 items with 1 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 323, 325, 340, 457, 502, 14, 359 Oak-Segment-Tar , 10, 703, 750, 868, 1068, 1151, 60, 871 Oak-Segment-Tar , 20, 830, 1009, 1660, 1827, 1948, 68, 1597 Reading 10000 items with 1 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 603, 603, 620, 713, 713, 8, 635 Oak-Segment-Tar , 10, 1346, 1396, 1569, 1644, 1703, 40, 1542 Oak-Segment-Tar , 20, 2581, 2703, 2916, 3177, 3354, 40, 2935 Reading 10000 items with 3 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 151, 153, 161, 185, 188, 31, 166 Oak-Segment-Tar , 10, 302, 331, 359, 428, 474, 140, 370 Oak-Segment-Tar , 20, 436, 594, 703, 809, 1006, 151, 701 Reading 10000 items with 3 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 153, 154, 164, 198, 229, 30, 170 Oak-Segment-Tar , 10, 287, 333, 355, 423, 502, 140, 365 Oak-Segment-Tar , 20, 375, 586, 723, 843, 946, 146, 718 Reading 10000 items with 3 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 221, 230, 290, 328, 334, 18, 284 Oak-Segment-Tar , 10, 540, 578, 647, 813, 888, 80, 668 Oak-Segment-Tar , 20, 822, 917, 1194, 1342, 1508, 98, 1158 Reading 10000 items with 3 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 568, 568, 667, 1047, 1047, 7, 732 Oak-Segment-Tar , 10, 1449, 1453, 1486, 1533, 1548, 40, 1487 Oak-Segment-Tar , 20, 2462, 2608, 2830, 3148, 3387, 40, 2869 Reading 10000 items with 3 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 1112, 1112, 1113, 1171, 1171, 5, 1125 Oak-Segment-Tar , 10, 2844, 2872, 2978, 3101, 3107, 20, 2986 Oak-Segment-Tar , 20, 5458, 5665, 5895, 5997, 6022, 20, 5863 Reading 10000 items with 5 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 160, 163, 207, 235, 244, 26, 201 Oak-Segment-Tar , 10, 264, 317, 339, 410, 579, 145, 354 Oak-Segment-Tar , 20, 483, 657, 763, 859, 944, 141, 755 Reading 10000 items with 5 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 160, 161, 171, 188, 221, 29, 173 Oak-Segment-Tar , 10, 348, 361, 371, 425, 466, 140, 381 Oak-Segment-Tar , 20, 586, 708, 795, 967, 1064, 131, 819 Reading 10000 items with 5 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 259, 261, 318, 442, 446, 15, 334 Oak-Segment-Tar , 10, 569, 585, 616, 893, 960, 80, 684 Oak-Segment-Tar , 20, 1042, 1189, 1345, 1489, 1633, 80, 1335 Reading 10000 items with 5 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 971, 971, 1017, 1196, 1196, 5, 1042 Oak-Segment-Tar , 10, 1227, 1237, 2513, 2541, 2584, 23, 2346 Oak-Segment-Tar , 20, 3650, 4013, 4597, 4928, 5167, 40, 4531 Reading 10000 items with 5 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 1639, 1639, 1662, 1669, 1669, 4, 1658 Oak-Segment-Tar , 10, 4125, 4159, 4216, 4273, 4284, 20, 4215 Oak-Segment-Tar , 20, 8440, 8723, 9014, 9116, 9157, 20, 8971 Reading 10000 items with 8 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 155, 159, 168, 222, 266, 29, 178 Oak-Segment-Tar , 10, 268, 318, 368, 449, 537, 138, 373 Oak-Segment-Tar , 20, 323, 613, 715, 812, 906, 147, 707 Reading 10000 items with 8 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 169, 171, 174, 191, 204, 29, 178 Oak-Segment-Tar , 10, 327, 362, 383, 460, 518, 130, 394 Oak-Segment-Tar , 20, 642, 772, 878, 953, 981, 120, 865 Reading 10000 items with 8 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 327, 338, 381, 464, 481, 13, 393 Oak-Segment-Tar , 10, 581, 619, 974, 1125, 1207, 58, 936 Oak-Segment-Tar , 20, 1171, 1269, 1551, 1799, 2116, 75, 1557 Reading 10000 items with 8 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 1226, 1226, 1354, 1479, 1479, 4, 1353 Oak-Segment-Tar , 10, 3377, 3438, 3644, 3795, 3803, 20, 3626 Oak-Segment-Tar , 20, 6032, 6053, 6304, 6428, 6454, 20, 6278 Reading 10000 items with 8 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 2325, 2325, 2361, 2363, 2363, 3, 2350 Oak-Segment-Tar , 10, 6123, 6129, 6227, 6261, 6262, 10, 6217 Oak-Segment-Tar , 20, 12207, 12285, 12680, 12830, 12834, 20, 12625 Reading 10000 items with 10 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 151, 155, 161, 173, 182, 31, 163 Oak-Segment-Tar , 10, 244, 329, 354, 392, 422, 145, 354 Oak-Segment-Tar , 20, 438, 591, 719, 823, 948, 151, 711 Reading 10000 items with 10 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 173, 175, 182, 195, 203, 28, 183 Oak-Segment-Tar , 10, 396, 402, 422, 483, 550, 120, 436 Oak-Segment-Tar , 20, 712, 785, 878, 972, 1022, 120, 877 Reading 10000 items with 10 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 336, 338, 347, 379, 384, 15, 354 Oak-Segment-Tar , 10, 865, 871, 910, 1077, 1136, 60, 944 Oak-Segment-Tar , 20, 1575, 1687, 1905, 2171, 2417, 60, 1907 Reading 10000 items with 10 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 1419, 1419, 1428, 1503, 1503, 4, 1445 Oak-Segment-Tar , 10, 3520, 3521, 3597, 3629, 3679, 20, 3590 Oak-Segment-Tar , 20, 6360, 6432, 6826, 7030, 7064, 20, 6804 Reading 10000 items with 10 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 2853, 2853, 2854, 2855, 2855, 2, 2854 Oak-Segment-Tar , 10, 7510, 7512, 7567, 7592, 7592, 10, 7563 Oak-Segment-Tar , 20, 14743, 15220, 15432, 15586, 15624, 20, 15383 Reading 10000 items with 11 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 154, 155, 160, 180, 204, 31, 164 Oak-Segment-Tar , 10, 205, 346, 367, 476, 572, 131, 386 Oak-Segment-Tar , 20, 360, 592, 734, 820, 941, 145, 717 Reading 10000 items with 11 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 170, 171, 178, 192, 202, 28, 179 Oak-Segment-Tar , 10, 383, 395, 414, 489, 571, 120, 426 Oak-Segment-Tar , 20, 382, 726, 875, 921, 993, 124, 836 Reading 10000 items with 11 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 193, 195, 205, 222, 280, 24, 209 Oak-Segment-Tar , 10, 431, 446, 466, 566, 671, 110, 484 Oak-Segment-Tar , 20, 639, 756, 964, 1088, 1322, 114, 947 Reading 10000 items with 11 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 371, 373, 397, 443, 447, 13, 403 Oak-Segment-Tar , 10, 1057, 1078, 1132, 1460, 1504, 50, 1200 Oak-Segment-Tar , 20, 1845, 1993, 2209, 2456, 2605, 59, 2203 Reading 10000 items with 11 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 674, 674, 719, 847, 847, 7, 733 Oak-Segment-Tar , 10, 1865, 1910, 2096, 2241, 2317, 30, 2092 Oak-Segment-Tar , 20, 3690, 3985, 4210, 4506, 4942, 40, 4218 Reading 10000 items with 21 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 157, 158, 163, 191, 255, 30, 170 Oak-Segment-Tar , 10, 305, 329, 355, 380, 428, 150, 354 Oak-Segment-Tar , 20, 394, 633, 748, 832, 951, 141, 738 Reading 10000 items with 21 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 190, 191, 196, 233, 301, 25, 205 Oak-Segment-Tar , 10, 384, 440, 462, 503, 527, 110, 462 Oak-Segment-Tar , 20, 578, 733, 978, 1104, 1234, 111, 963 Reading 10000 items with 21 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 198, 199, 202, 218, 248, 25, 206 Oak-Segment-Tar , 10, 413, 437, 460, 585, 653, 110, 484 Oak-Segment-Tar , 20, 653, 826, 959, 1084, 1184, 116, 953 Reading 10000 items with 21 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 372, 376, 397, 450, 461, 13, 407 Oak-Segment-Tar , 10, 1041, 1078, 1191, 1295, 1436, 50, 1187 Oak-Segment-Tar , 20, 1902, 2089, 2255, 2512, 2650, 60, 2277 Reading 10000 items with 21 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 673, 673, 700, 831, 831, 8, 714 Oak-Segment-Tar , 10, 1824, 1885, 2014, 2121, 2167, 30, 2011 Oak-Segment-Tar , 20, 3588, 3844, 4053, 4378, 4454, 40, 4073 Reading 10000 items with 31 initial ACEs per principal and 1 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 159, 159, 162, 171, 184, 31, 164 Oak-Segment-Tar , 10, 321, 344, 363, 415, 516, 140, 372 Oak-Segment-Tar , 20, 512, 649, 750, 854, 911, 142, 745 Reading 10000 items with 31 initial ACEs per principal and 10 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 162, 163, 166, 231, 247, 29, 175 Oak-Segment-Tar , 10, 342, 354, 369, 387, 520, 140, 375 Oak-Segment-Tar , 20, 619, 709, 781, 808, 888, 140, 771 Reading 10000 items with 31 initial ACEs per principal and 100 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 200, 201, 206, 251, 312, 24, 215 Oak-Segment-Tar , 10, 399, 441, 468, 509, 533, 110, 470 Oak-Segment-Tar , 20, 438, 855, 1007, 1084, 1163, 107, 975 Reading 10000 items with 31 initial ACEs per principal and 500 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 369, 371, 395, 457, 465, 13, 405 Oak-Segment-Tar , 10, 957, 991, 1222, 1301, 1309, 49, 1190 Oak-Segment-Tar , 20, 1469, 1548, 2398, 2610, 2740, 54, 2226 Reading 10000 items with 31 initial ACEs per principal and 1000 principals per subject ----------------------------------------------------------- # RefreshHasPrivPermHasItemG, C, min, 10%, 50%, 90%, max, N mean Oak-Segment-Tar , 1, 729, 729, 762, 795, 795, 7, 763 Oak-Segment-Tar , 10, 2014, 2025, 2134, 2327, 2360, 30, 2153 Oak-Segment-Tar , 20, 3676, 3862, 4248, 4793, 5467, 39, 4314